获取逗号分隔字符串列之间的公共元素(来自同一行),保留行名

2024-01-02

我有一个数据框,其中一些列包含逗号分隔的字符串:

     colA     colB

1    a,b,c,ñ  d,b,e
2    f,g,h    f,g,m,p
3    i,j,k    f,o,j

我想获得对应于同一行的两列之间的共同元素。所以我想要的输出是:

    colA    colB
1     b       b
2    f,g     f,g
3     j       j

我试图将这些列转换为列表列表,以便在之后执行交集,但我遇到了一些问题,所以我想知道是否有更简单的方法。我怎样才能得到这个?


我们可以用这个

 df[,1:2] <- apply(df,1, function(X) paste(unlist(strsplit(X[1],","))[unlist(strsplit(X[1],",")) %in% unlist(strsplit(X[2],","))],collapse=",") )


   > df
  colA colB
1    b    b
2  f,g  f,g
3    j    j

Data:

df <- structure(list(colA = structure(1:3, .Label = c("a,b,c,ñ", "f,g,h", 
"i,j,k"), class = "factor"), colB = structure(1:3, .Label = c("d,b,e", 
"f,g,m,p", "f,o,j"), class = "factor")), class = "data.frame", row.names = c(NA, 
-3L))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取逗号分隔字符串列之间的公共元素(来自同一行),保留行名 的相关文章

随机推荐