我可以帮助您翻译。需要将数据框中的字符串文字快速简洁地拆分成一组列。假设我有以下数据框:
我尝试使用以下语法:
data <- data.frame(id=c(1,2,3), tok1=c("a, b, c", "a, a, d", "b, d, e"), tok2=c("alpha|bravo", "alpha|charlie", "tango|tango|delta") )
请注意各列之间的分隔符不同。
通常情况下,字符串列的数量事先是未知的(尽管如果没有其他选择,我可以尝试发现所有可能的情况)。
我需要两个像这样的数据框:
tok1.occurrences:
+----+---+---+---+---+---+
| id | a | b | c | d | e |
+----+---+---+---+---+---+
| 1 | 1 | 1 | 1 | 0 | 0 |
| 2 | 2 | 0 | 0 | 1 | 0 |
| 3 | 0 | 1 | 0 | 1 | 1 |
+----+---+---+---+---+---+
tok2.occurrences:
+----+-------+-------+---------+-------+-------+
| id | alpha | bravo | charlie | delta | tango |
+----+-------+-------+---------+-------+-------+
| 1 | 1 | 1 | 0 | 0 | 0 |
| 2 | 1 | 0 | 1 | 0 | 0 |
| 3 | 0 | 0 | 0 | 1 | 2 |
+----+-------+-------+---------+-------+-------+
我尝试使用以下语法:
我尝试使用以下语法:
tok1.f = factor(data$tok1)
dummies <- model.matrix(~tok1.f)
这最终是一个不完整的解决方案。它能正确创建我的虚拟变量,但显然不能根据分隔符进行拆分。
我知道我可以使用“tm”包来找到文档-术语矩阵,但它似乎对于如此简单的标记化而言过于复杂了。有更直接的方法吗?