2012-06-21 17 views
5

所以我有兩個數據點向量,我想列出每個唯一對,以及這個對的頻率。我知道我可以使用table來完成這個操作,但是我似乎無法弄清楚如何使用pair來完成它。如何製作R中所有獨特數據點對的列表?

+1

'table'接受多個參數並交叉列表。 – cardinal

+2

「獨特」功能被重載以自動執行此操作。如果你輸入一個矩陣,它將返回矩陣的唯一行 - 這應該解決你的問題。 – Macro

+0

是等長的向量嗎? – JackeJR

回答

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) 
+1

啊。 「獨特」。誰會猜到? – crf

0

如果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 
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 
相關問題