我有以下数据框
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
我无法弄清楚如何计算SelectVar中不同元素Dxa2,Dxb2 ...的频率
答案 0 :(得分:7)
您可以将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
答案 1 :(得分:3)
使用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
虽然如果你有数字列,你可能会得到巨大的,不可读的输出。