【发布时间】:2017-05-04 21:26:12
【问题描述】:
我知道必须是一个简单的答案,但我似乎无法弄清楚。
假设我有一个数据集:
id <- c(1,1,1,2,2,3,3,4,4)
visit <- c("A", "B", "C", "A", "B", "A", "C", "A", "B")
test <- c(12,16, NA, 11, 15,NA, 0,12, 5)
df <- data.frame(id,visit,test)
我想知道每次访问的数据点数,以便最终输出如下所示:
visit test
A 3
B 3
C 1
我该怎么做呢?我试过用表
table(df$visit, df$test)
但我得到了一个完整的网格,其中包含访问和测试值组合的值数。
我可以这样对每一行求和:
sum(table(df$visit, df$test))[1,]
sum(table(df$visit, df$test))[2,]
sum(table(df$visit, df$test))[3,]
但我觉得有一种更简单的方法,但我错过了!任何帮助将不胜感激!
【问题讨论】:
-
另外:
table(df[!is.na(df$test),"visit"])我认为应该可以工作。要获取 data.frame,只需使用data.frame(table(df[!is.na(df$test),"visit"]))