Вопрос:

Подсчет частоты элемента в кадре данных

r

28025 просмотра

2 ответа

742 Репутация автора

У меня есть следующий кадр данных

SelectVar

   b    c    e    f    g    h    j 
1 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2
2 Dxb2 Dxb2 Dxb2 Dxb2 Dxc2 Dxc2 Dxc2
3 Dxd2 Dxi2 tneg tpos Dxd2 Dxi2 tneg

При подаче заявки я получаю

count(SelectVar)

   b    c    e    f    g    h    j   freq
1 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2   1
2 Dxb2 Dxb2 Dxb2 Dxb2 Dxc2 Dxc2 Dxc2   1
3 Dxd2 Dxi2 tneg tpos Dxd2 Dxi2 tneg   1

Когда я подаю заявку

кол (SelectVar == Dxa2)

     b     c     e     f     g     h     j     freq
1 FALSE FALSE FALSE FALSE FALSE FALSE FALSE     1 

Не могу понять, как считать частоту разных элементов Dxa2, Dxb2 ... в SelectVar

Автор: Barnaby Источник Размещён: 04.02.2014 11:18

Ответы (2)


7 плюса

15881 Репутация автора

Решение

Вы можете повернуть data.frameк vectorа затем использоватьtable

df <- read.table(text = "   b    c    e    f    g    h    j 
1 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2
2 Dxb2 Dxb2 Dxb2 Dxb2 Dxc2 Dxc2 Dxc2
3 Dxd2 Dxi2 tneg tpos Dxd2 Dxi2 tneg", header = TRUE, row.names = 1)

table(unlist(df))
## Dxa2 Dxb2 Dxd2 Dxi2 tneg tpos Dxc2 
##    7    4    2    2    2    1    3 

Вы можете превратить результат в data.frameслишком

as.data.frame(table(unlist(df)))
##   Var1 Freq
## 1 Dxa2    7
## 2 Dxb2    4
## 3 Dxd2    2
## 4 Dxi2    2
## 5 tneg    2
## 6 tpos    1
## 7 Dxc2    3
Автор: dickoa Размещён: 04.02.2014 11:26

3 плюса

361 Репутация автора

Используйте table(), особенно хорошо, если они являются факторами (которые, по-видимому, содержат ваши данные):

first <- c("a", "b", "c")
sec <- c("a", "b", "b")
third <- c("b","c","c")
myframe <- cbind(first, sec, third)
table(myframe)

myframe
a b c 
2 4 3

Хотя, если у вас есть числовые столбцы, вы можете получить огромный, нечитаемый вывод.

Автор: TomR Размещён: 04.02.2014 11:32
Вопросы из категории :
32x32