供参考
library(vcd)
data(Arthritis)
Art = Arthritis[c("Treatment", "Sex", "Age")]
我想找出数据框中匹配属性的数量。
例如
Adj Name Verb
Red John Jumps
Blue John Sleeps
Red John Jumps
Red Smith Jumps
Red Smith Walks
最后,我想看看:
Adj Name Verb Freq
Red John Jumps 2
Blue John Sleeps 1
Red Smith Jumps 1
Red Smith Walks 1
有没有办法在R中这样做?
答案 0 :(得分:3)
您可以使用aggregate
执行此操作。
DAT = read.table(text="Adj Name Verb
Red John Jumps
Blue John Sleeps
Red John Jumps
Red Smith Jumps
Red Smith Walks",
header=TRUE)
aggregate(rep(1, nrow(DAT)), DAT, length)
Adj Name Verb x
1 Red John Jumps 2
2 Red Smith Jumps 1
3 Blue John Sleeps 1
4 Red Smith Walks 1
您也可以使用sum
代替长度。
答案 1 :(得分:1)
比@ G5W稍微笨拙,但是:
## cross-tabulate
t1 <- with(dd,table(Adj,Name,Verb))
## convert to long format
res <- as.data.frame(t1)
## drop zeros
subset(res,Freq>0)