簡體   English   中英

從R中的字符串到DataFrame的詞頻

[英]Word Frequency to DataFrame from strings in R

我想使用一些字符串向量,並將在向量中找到的單詞的頻率作為數據幀。 數據框的列名稱應該是在所有組合的字符串中找到的唯一單詞。 我有這部分,正是這些單詞被添加到數據幀的頻率使我着迷。 這是我嘗試的縮小版本。 我嘗試使用table(),但不確定自己的方向正確。

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

示例數據。框架設計

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

這應該工作

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

擁有長數據集后,這實際上是一個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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM