количество записей в кадре данных в R

C# является хорошим языком, который соответствует Вашим требованиям, и он определенно подходит для графики благодаря усилиям Microsoft предоставить ему большие инструменты и библиотеки как Visual Studio и XNA.

24
задан Michael 28 November 2009 в 19:38
поделиться

3 ответа

Вы можете использовать таблицу :

R> x <- read.table(textConnection('
   Believe Age Gender Presents Behaviour
1    FALSE   9   male       25   naughty
2     TRUE   5   male       20      nice
3     TRUE   4 female       30      nice
4     TRUE   4   male       34   naughty'
), header=TRUE)

R> table(x$Believe)

FALSE  TRUE 
    1     3 
38
ответ дан 28 November 2019 в 22:22
поделиться
sum(Santa$Believe)
14
ответ дан 28 November 2019 в 22:22
поделиться

Я думаю об этом как о двухэтапном процессе:

  1. подобрать исходный фрейм данных в соответствии с предоставленным фильтром (Верить == ЛОЖЬ); затем

  2. получить количество строк в этом подмножестве

Для первого шага функция subset является хорошим способом сделать это (просто альтернатива обычному индексу или скобкам ) обозначение).

Для второго шага я бы использовал dim или nrow

Одно из преимуществ использования подмножества : вам не нужно анализировать результат он возвращается, чтобы получить нужный результат - просто вызовите для него nrow напрямую.

так в вашем случае:

v = nrow(subset(Santa, Believe==FALSE))     # 'subset' returns a data.frame

или заключенный в анонимную функцию :

>> fnx = function(fac, lev){nrow(subset(Santa, fac==lev))}

>> fnx(Believe, TRUE)
      3

Помимо nrow , эту работу также выполняет dim . Эта функция возвращает размеры фрейма данных (строки, столбцы), поэтому вам просто нужно указать соответствующий индекс для доступа к количеству строк:

v = dim(subset(Santa, Believe==FALSE))[1] 

Ответ на OP, опубликованный перед этим, показывает использование таблицы непредвиденных обстоятельств. Мне не нравится такой подход к общей проблеме, изложенный в ОП. Вот причина. Конечно, на общую проблему , сколько строк в этом фрейме данных имеет значение x в столбце C? , можно ответить с помощью таблицы непредвиденных обстоятельств, а также с помощью схемы «фильтрации» (как в моем ответе здесь). Если вы хотите подсчет строк для всех значений для данной факторной переменной (столбца), тогда таблица непредвиденных обстоятельств (путем вызова таблицы и передачи интересующего столбца (столбцов)) является наиболее разумным решением; однако OP запрашивает подсчет конкретного значения в факторной переменной, а не подсчитывает все значения. Помимо снижения производительности (может быть большим, может быть тривиальным, просто зависит от размера кадра данных и контекста конвейера обработки, в котором находится эта функция). И, конечно же, как только результат вызова таблицы будет возвращен, вам все равно придется проанализировать из этого результата только с нужным количеством.

Вот почему для меня это проблема фильтрации, а не перекрестной таблицы.

23
ответ дан 28 November 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: