【发布时间】:2022-01-16 13:40:11
【问题描述】:
我有一个包含一列的数据框 (df1),每个条目/行/观察由一长串文本 (df1$text) 组成。在一个单独的数据框 (df2) 中,我有一列,每个条目/行/观察由一个名称 (df2$name) 组成。
我想为 df1 中的每一行注明 df2$name 中的哪些名称出现在文本中。理想情况下,我想将名称是否出现在 df1$text 中存储为 1/0 值,该值存储在 df1 的新列(即虚拟变量)中,以该名称命名:
> df1
text
1 ...
2 ...
3 ...
4 ...
> df2
name
1 John
2 James
3 Jerry
4 Jackson
代码执行后:
> df1
text John James Jerry Jackson
1 ... 1 1 0 1
2 ... 0 0 0 1
3 ... 1 1 0 1
4 ... 1 0 0 1
有没有办法在不使用 for 循环的情况下做到这一点?我的文本字段很长,我在 df1 和 df2 中都有很多观察结果。
【问题讨论】:
标签: r dataframe for-loop text-mining grepl