[英]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.