从R中的字符串将字频率转换为DataFrame

时间:2017-10-18 21:57:05

标签: r dataframe

我想取几个字符串向量,并将向量中找到的单词的频率作为数据帧。数据框的列名应该是在所有字符串组合中找到的唯一字。我有这个部分,这些单词的频率被添加到了我的数据框架中。这是我正在尝试的缩小版本。我尝试过使用table(),但我不确定我是否正确。

a <- c('A', 'B', 'C', 'D', 'E')
b <- c('A', 'D', 'J', 'G', 'X')
c <- c('A', 'A', 'B', 'B', 'C', 'X')

示例Data.Frame Design

vector.name  A  B  C  D  E  J  G  X 
a            1  1  1  1  1  0  0  0
b            1  0  0  1  0  1  1  1
c            2  2  1  0  0  0  0  1

2 个答案:

答案 0 :(得分:3)

这应该有效

countUniqueEntries <- function(l) {
    lapply(l, function(x) {
        x <- factor(x, levels = unique(unlist(l)));
        table(x) })
}

do.call(rbind, countUniqueEntries(list(a, b, c)));
     A B C D E J G X
[1,] 1 1 1 1 1 0 0 0
[2,] 1 0 0 1 0 1 1 1
[3,] 2 2 1 0 0 0 0 1

答案 1 :(得分:1)

一旦有了长数据集,这基本上就是一个table操作:

table(stack(mget(c("a","b","c")))[2:1])

#   values
#ind A B C D E G J X
#  a 1 1 1 1 1 0 0 0
#  b 1 0 0 1 0 1 1 1
#  c 2 2 1 0 0 0 0 1