R 将两个向量与公共元素对齐
我有两个向量,其中一些元素是公共的:R 将两个向量与公共元素对齐,r,join,R,Join,我有两个向量,其中一些元素是公共的: v1= c('a', 'b', 'c') v2 = c('b', 'c', 'd') 我想把向量组合成两个data.frames。在第一个示例中,我希望两个向量中的所有元素,并且两个向量中的不匹配位置应替换为NA: 在第二个数据帧中,我想要第一个向量中的元素和第二个向量中的对应匹配: v1 v2 a NA b b c c 最好的方法是什么?第一种 mergedf=merge(data.frame('key'=v1,v1),data.
v1= c('a', 'b', 'c')
v2 = c('b', 'c', 'd')
我想把向量组合成两个data.frames。在第一个示例中,我希望两个向量中的所有元素,并且两个向量中的不匹配位置应替换为NA:
在第二个数据帧中,我想要第一个向量中的元素和第二个向量中的对应匹配:
v1 v2
a NA
b b
c c
最好的方法是什么?第一种
mergedf=merge(data.frame('key'=v1,v1),data.frame('key'=v2,v2),by='key',all=T)
mergedf
key v1 v2
1 a a <NA>
2 b b b
3 c c c
4 d <NA> d
获得第二个df
mergedf[!is.na(mergedf$v1),]
key v1 v2
1 a a <NA>
2 b b b
3 c c c
4 d <NA> d
拿第一个
mergedf=merge(data.frame('key'=v1,v1),data.frame('key'=v2,v2),by='key',all=T)
mergedf
key v1 v2
1 a a <NA>
2 b b b
3 c c c
4 d <NA> d
获得第二个df
mergedf[!is.na(mergedf$v1),]
key v1 v2
1 a a <NA>
2 b b b
3 c c c
4 d <NA> d
可以选择基于dplyr的解决方案。您可以将完全联接和左联接用作:
可以选择基于dplyr的解决方案。您可以将完全联接和左联接用作:
您缺少了一个逗号mergedf[!is.namergedf$v1,]。有更好的方法吗?我有这样的感觉,但不知道如何…你缺少了一个逗号,mergedf[!is.namergedf$v1,],有没有更好的方法?我有这种感觉,但不知道如何。。。