计算R中列中的字符串频率并保留其他列

时间:2012-10-02 07:21:30

标签: r

我有一个看起来像

的data.frame
 a = c("sample1", "asd")
 b = c("sample2" ,"poua")
 c = c("sample3", "asd")

 dat <- rbind(a,b,c)

我想计算column2的字符串频率,并将column1名称保留在list / ragged数组中。看起来像是

 asd    sample1     sample3
 poua   sample2      

我知道桌子计数频率,但我无法让它保留名字,所以我真的非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

您可以使用tapply

tapply(dat[,1], dat[,2], as.vector)

$asd
[1] "sample1" "sample3"

$poua
[1] "sample2"

编辑:如果你的rownames很重要,你可以使用identity作为函数:

tapply(dat[,1], dat[,2], identity)

$asd
        a         c 
"sample1" "sample3" 

$poua
        b 
"sample2"