Как я могу получить количество строк data.frame в R? [закрыто]

158

После прочтения набора данных:

dataset <- read.csv("forR.csv")
  • Как я могу получить R, чтобы дать мне количество дел, которые он содержит?
  • Кроме того, будет ли возвращаемое значение включать исключающие случаи, пропущенные с помощью na.omit(dataset)?
Том Райт
источник
1
Я также рекомендую взглянуть на него, str()поскольку он предоставляет другие полезные сведения о вашем объекте. Часто можно объяснить, почему столбец ведет себя не так, как должен (коэффициент вместо числа и т. Д.).
Погоня
3
Пожалуйста, сначала прочтите руководство по R для Оуэна ( cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf ) и, если возможно, Введение в R ( cran.r-project.org/doc/manuals/R- intro.pdf ). Оба на официальном сайте R. Тебе невероятно повезло, что ты действительно получил ответ. В списке r-help можно перенаправить вас к руководству в менее изящных терминах. Без обид.
Йорис Мейс
11
@Joris - Точка взята (без обид), но у меня сложилось впечатление, что сайты SE были спроектированы так, чтобы способствовать изучению проблем / решений способом, не предусмотренным в руководствах. Кроме того, этот вопрос теперь будет доступен для других начинающих. Спасибо за ссылки, хотя.
Том Райт
2
Я не согласен с вашим утверждением, что этот вопрос будет полезен для других начинающих, особенно если они не читают руководство. Они просто создадут дублирующий вопрос.
Джошуа Ульрих
6
И спустя четыре года это второй удар, который я получил в Google, пытаясь найти ответ на этот вопрос. Мне не нужно создавать дубликаты (@JoshuaUlrich).
Ричард

Ответы:

174

datasetбудет фрейм данных. Поскольку у меня нет forR.csv, я создам небольшой фрейм данных для иллюстрации:

set.seed(1)
dataset <- data.frame(A = sample(c(NA, 1:100), 1000, rep = TRUE),
                      B = rnorm(1000))

> head(dataset)
   A           B
1 26  0.07730312
2 37 -0.29686864
3 57 -1.18324224
4 91  0.01129269
5 20  0.99160104
6 90  1.59396745

Чтобы получить количество наблюдений, посчитайте количество строк, используя nrow()или NROW():

> nrow(dataset)
[1] 1000
> NROW(dataset)
[1] 1000

Для подсчета данных после того, как опуская NA, использовать те же инструменты, но обернуть datasetв na.omit():

> NROW(na.omit(dataset))
[1] 993

Разница между NROW()и NCOL()и их строчными вариантами ( ncol()и nrow()) заключается в том, что строчные версии будут работать только для объектов, имеющих измерения (массивы, матрицы, фреймы данных). Версии в верхнем регистре будут работать с векторами, которые обрабатываются так, как если бы они были матрицей из 1 столбца, и являются надежными, если в итоге вы поднастроили свои данные так, что R отбрасывает пустое измерение.

В качестве альтернативы используйте complete.cases()and sumit ( complete.cases()возвращает логический вектор [ TRUEили FALSE], указывающий, имеются ли какие-либо наблюдения NAдля каких-либо строк.

> sum(complete.cases(dataset))
[1] 993
Гэвин Симпсон
источник
36

Кратко:

  1. Запустите dim(dataset)для получения обоих n и k , вы также можете использовать nrow(df)и ncol(df)(и даже NROW(df)и NCOL(df)- варианты нужны и для других типов).

  2. Если вы преобразуете, например, через dataset <- na.omit(dataset), то дела исчезли и не учитываются. Но если вы делаете, например summary(dataset) , учитываются случаи АН.

Дирк Эддельбюттель
источник