这是我的数据集
N Pl
10, WO
20, EI
10, WO
20, WO
30, EI
我的预期输出是
N Pl
10, 2
20, 1
30, 1
所以,基本上,我在计算每个值为n的p的数量
我正在尝试dplyr。我知道这也可以用aggregate()完成,但我不知道该如何处理。所以在dplyr中我运行这个语句并得到以下错误
说明:
Diff %>% group_by(N) %>% summarise(pl=count(pl))
此处Diff
是我的表名
Error in UseMethod("group_by_") : no applicable method for 'group_by_' applied to an object of class "c('integer', 'numeric')"
我不知道该怎么做。任何帮助将不胜感激。我也只有R
的基本知识答案 0 :(得分:3)
也许你想要的输出是错误的,试试:
library(dplyr)
df<-data.frame(N=c(10,20,10,20,30), Pl=c("WO","EI","WO","WO","EI"))
group <- group_by(df, N)
result <- as.data.frame(summarise(group, Pl = n_distinct(Pl)))
result
N Pl
1 10 1
2 20 2
3 30 1
# the data.table way
library(data.table)
setDT(df)[, list(Pl=uniqueN(Pl)), by= N]