【发布时间】:2018-05-10 17:42:07
【问题描述】:
我想找到一个优雅的方法:
- 从 df1 的每一行中提取多个子字符串
- 将每行的多个子字符串存储为向量或列表
- 为 df1 中的每个行向量返回一个值
我有两个数据框:
n = c("Canada and USA", "USA and Mexico", "Canada and Mexico")
df1 = data.frame(n)
m = c("Canada", "USA", "Mexico")
o = c(5, 8, 7)
df2= data.frame(m, o)
我生成的数据框如下所示:
n = c("Canada and USA", "USA and Mexico", "Canada and Mexico")
p = c(13, 15, 12)
df3 = data.frame(n, p)
其中向量“p”的值是向量“o”中与向量“n”相对应的元素的总和。
注意:我只是在寻找一种方法,所以我可能会解决这个问题。
目前,我坚持使用 lapply 和正则表达式从 df1 中提取多个子字符串,并且不知道如何存储子字符串,无论是在列表中还是在另一个数据框中。
对于如何解决该问题的任何想法和建议将不胜感激,因为我想花时间充分了解解决此问题背后的机制。
提前谢谢你!
已编辑:用于格式化
【问题讨论】:
-
试试
strsplit(as.character(df1$n), " and ") -
你的结果总和是
p对吗?我没有得到这些值(不是按那个顺序)。 -
@Pieca,strsplit 是个好主意,但如果 df1 可能在字符串中包含其他填充词,则可能没有帮助。
-
@RuiBarradas,P 是子串组合的 O 的结果总和 :)
标签: r