Як отримати кількість рядків фрейму data.f в R? [зачинено]


157

Прочитавши набір даних:

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- вступ.pdf ). Обидва знаходяться на офіційному веб-сайті Р. Вам надзвичайно пощастило, що ви насправді отримали відповідь. У списку r-довідки можна перенаправити вас на посібник менш елегантно. Жодного образи не означало.
Йоріс Майс

11
@Joris - Точка прийнята (без образи), але мені склалося враження, що сайти SE розроблені для сприяння вивченню проблем / рішень таким чином, який не надається посібниками. Крім того, це питання тепер буде доступне для інших початківців. Дякуємо за посилання.
Том Райт

2
Я не згоден з вашим твердженням, що це питання буде корисним для інших початківців, особливо якщо вони не обійдуться в посібнику. Вони просто створять повторне запитання.
Джошуа Ульріх

6
І, через чотири роки, це вже друге звернення, яке я отримав від Google, намагаючись знайти відповідь на це питання. Мені не потрібно створювати дублікат (@JoshuaUlrich).
Річард

Відповіді:


173

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()і sumвін ( 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. Якщо ви перетворитесь, наприклад, через via dataset <- na.omit(dataset), випадки відпадають і не рахуються. Але якщо ви робите, наприклад, summary(dataset) випадки НС обліковуються.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.