如何在R中列出所有独特数据点对的列表?

6

我有两个数据点向量,想要创建一个包含每个唯一对和该对出现频率的列表。我知道可以使用table来处理其中一个向量,但是不知道如何处理有序对。


1
table 接受多个参数并进行交叉制表。 - cardinal
2
unique函数被重载以自动执行此操作。如果您输入一个矩阵,它将返回矩阵的唯一行 - 这应该解决您的问题。 - Macro
这些向量长度是否相等? - RJ-
3个回答

9

这只是技术方面的...

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)

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

1
如果vec1vec2是所讨论的向量:
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接