有没有一种方法可以使用R函数连接两个列?

有没有一种方法可以使用R函数连接两个列?,r,R,我在list.x中有Name列,在list.y中有Name列。我愿意加入他们的行列。问题是,list.x中的名称是 列表中的名称。x以分隔!而在列表y中,以分隔, 列表中的名字。x名字然后是姓氏na,e!而在列表中。y姓然后名。 我想按产品和分子将x.list与y.list进行匹配 我希望在此处添加输出,但obs名称太长,无法添加。尝试以下操作: library(dplyr) library(tidyr) x.list %>% separate_rows(Moleculs.x, se

我在list.x中有Name列,在list.y中有Name列。我愿意加入他们的行列。问题是,list.x中的名称是

列表中的名称。x以分隔!而在列表y中,以分隔, 列表中的名字。x名字然后是姓氏na,e!而在列表中。y姓然后名。 我想按产品和分子将x.list与y.list进行匹配

我希望在此处添加输出,但obs名称太长,无法添加。

尝试以下操作:

library(dplyr)
library(tidyr)

x.list %>%
  separate_rows(Moleculs.x, sep = '!') %>%
  rename(Molecules =  Moleculs.x) %>%
  inner_join(y.list %>%
               separate_rows(Molecules.y, sep = ',') %>%
               rename(Molecules = Molecules.y), by = c("Product", "Molecules")) -> result

result

预期产量是多少?请精确显示。目前,我正在寻找一种映射文件的方法,然后我可以利用该功能。理想情况下,我将在y.list中有其他列,这些列将在与Product和Molecule匹配时映射到Fatih Ekici。你的解决方案是可行的,但是我想使用by=中的分子作为第二个条件的原因,因为当同一个产品有不同的分子时,你可以添加连接函数full_joiny.list,by=cProduct,Moleculs.x=molecles.y以获得更多的连接信息,但是如果你通过两个组连接,你必须同步这些值​​在第一列中。您可以简单地使用函数ı。嗨,Fatih,我相信在您结束时,函数运行时会出现任何错误。然而,我不希望运行这个函数并得到错误,错误:输入分子发生变异的问题。输入分子时未找到模式“function”的x对象“x”。y是有序分子。y.Hi Ronak,感谢您的解决方案,但除了分离器外,有些分子不有序。看看这一分子。x=氰基钴胺!右旋泛酚!烟酰胺!吡哆醇!核黄素!硫胺素分子。y=烟酰胺、吡哆醇、右旋泛酚、硫胺素、核黄素、氰基巴拉明连接不要求元素有序。嗨,罗纳克,来详细说明我的问题,list.x=data.frameName=cJohn Citizen,Dipayan Banerjee list.y=data.frameName=cCitizen John,Banerjee Dipayan,郊区=cLangley,Mars
orderAlp<-function(x){
  str_split(x, ' ') %>% lapply(x, 'sort') %>%  lapply(x, 'paste', collapse=' ') %>% unlist(x)
}
x.list %>% full_join(y.list,by="Product") %>% 
  mutate(Moleculs.x=str_replace_all(Moleculs.x,"!",","),
         Molecules.y=orderAlp(Molecules.y))
library(dplyr)
library(tidyr)

x.list %>%
  separate_rows(Moleculs.x, sep = '!') %>%
  rename(Molecules =  Moleculs.x) %>%
  inner_join(y.list %>%
               separate_rows(Molecules.y, sep = ',') %>%
               rename(Molecules = Molecules.y), by = c("Product", "Molecules")) -> result

result