所以我有两个数据点向量,我想列出每个唯一对以及该对的频率。我知道我可以使用 table 来处理其中一个向量,但我似乎无法弄清楚如何让它成对地完成。
crf
问问题
11656 次
3 回答
8
只是...
dat <- data.frame(x = sample(letters[1:3], size = 100, replace = TRUE),
y = sample(letters[1:3], size = 100, replace = TRUE) )
unique(dat)
table(dat)
或者,假设您的向量只是 x 和 y,而您只想要表格...
table(x,y)
于 2012-06-21T05:35:02.043 回答
2
# A sample dataset:
dat <- data.frame(x = sample(letters, size = 1000, replace = TRUE),
y = sample(letters, size = 1000, replace = TRUE)
)
# Aggregating using just base R:
as.data.frame(table(dat$x, dat$y))
# With plyr
library(plyr)
count(dat, vars = c(x, y))
count(dat) # Or, less generalizably
于 2012-06-21T02:48:27.237 回答
1
如果vec1
和vec2
是有问题的向量:
points <- mapply(c, vec1, vec2, SIMPLIFY=FALSE)
uniq.points <- unique(points)
freqs <- sapply(uniq.points, FUN=function(point) length(which(points %in% list(point))))
cbind(do.call(rbind, uniq.points), freqs) # matrix of points and freqs
于 2012-06-21T02:22:53.093 回答