【发布时间】:2022-01-19 17:19:55
【问题描述】:
我有两个带有字符串值的数据框:
df1 <- data.frame(values = c("apples_x", "oranges_z", "bananas_y", "berries_u", "melons_r"))
df2 = data.frame(values = c('apples','oranges','z','pears','x','bananas','plums','y','h','grapes','q'))
我想在两个数据帧之间进行成对比较,方法是遍历数据帧 2 的每一行,并分配 df1 值的水果和字母都出现在 df2 中的对号。 我想创建一个新的数据框来存储找到的匹配项的对号。 理想情况下,它看起来像这样:
df3 %>% head()
values paired
<ch> <int>
1 apples 1
2 x 1
3 oranges 2
4 z 2
5 bananas 3
6 y 3
我试图将 df1 中的值分成两个字符串,但我得到的字符串与任何字符都匹配。
lapply(df2, FUN=function(x){any(df1==x[[1]] & df1==x[[2]])})
【问题讨论】:
-
我已编辑您的代码以将数据包含为 data.frame,这就是文本所暗示的。如果不正确,请重新编辑。
-
你如何获得
2的oranges? (例如。) -
您是否正在寻找某种索引。然后
df1 %>% mutate(paired = row_number()) %>% separate_rows(values)正如其他人评论的那样,示例中的匹配数没有给出预期的输出 -
抱歉,为了清楚起见,我已经编辑了帖子