【发布时间】:2017-08-04 02:18:42
【问题描述】:
我有一个包含短字符串的简单数据框,每个字符串都有一个特定的类:
datadb <- data.frame (
Class = c('Class1', 'Class2', 'Class3'),
Document = c('This is test', 'Yet another test', 'A last test')
)
datadb$Document <- tolower(datadb$Document)
datadb$Tokens <- strsplit(datadb$Document, " ")
由此,我想构建另一个数据框,其中包含原始 Class1 列,但为每个唯一标记添加了一个新列,如下所示:
all_tokens <- unlist(datadb$Tokens)
all_tokens <- unique(all_tokens)
number_of_columns <- length(all_tokens)
number_of_rows <- NROW(datadb)
tokenDB <- data.frame( matrix(ncol=(1 + number_of_columns), nrow=number_of_rows) )
names(tokenDB) <- c("Classification", all_tokens)
tokenDB$Classification <- datadb$Class
tokenDB 将如下所示:
Classification this is test yet another a last
1 Class1 NA NA NA NA NA NA NA
2 Class2 NA NA NA NA NA NA NA
3 Class3 NA NA NA NA NA NA NA
如何遍历原始数据框并将值添加到新的tokenDB 对应于已识别的每个向量?输出应如下所示:
Classification this is test yet another a last
1 Class1 1 1 1 0 0 0 0
2 Class2 0 0 1 1 1 0 0
3 Class3 0 0 1 0 0 1 1
理想情况下,输出应该是一个 data.frame,但也可以是一个矩阵。
【问题讨论】: