【发布时间】:2020-07-23 07:51:18
【问题描述】:
这是我的例子。从这个数据框中,我想创建一个新的数据框,其中包含基于列、mgb 和列中的匹配的行,tsg 从而省略了其他行。
mbr mbg tsr tsg
1 1 g1 3 g4
2 2 g2 4 g3
3 3 g3 5 g2
4 4 g4 6 g1
5 5 g5 7 g5
6 NA <NA> 1 g6
7 NA <NA> 2 g7
所以理想情况下它会返回这个数据框:
mbr mbg tsr tsg
1 1 g1 3 g4
2 2 g2 4 g3
3 3 g3 5 g2
4 4 g4 6 g1
5 5 g5 7 g5
到目前为止我已经尝试过:
1) intersect(df$mbg,df$tsg) 但仅返回列之间匹配项的列表,例如g1、g2 等...
2)df2<-[intersect(df$mbg,df$tsg),]
返回这个:
mbr mbg tsr tsg
NA NA <NA> NA <NA>
NA.1 NA <NA> NA <NA>
NA.2 NA <NA> NA <NA>
NA.3 NA <NA> NA <NA>
NA.4 NA <NA> NA <NA>
我对 R 非常陌生,并且正在尝试自学,因此任何建议都会令人惊叹。谢谢!
【问题讨论】:
-
我不明白你的描述。看起来您所做的只是过滤 mbg 和 tsr 为非 NA 的行。您是否试图查找 mbg 包含在 tsg 中的行,而这只是所有非 NA 行的巧合?如果是这样,您应该可以使用
%in%
标签: r dataframe duplicates subset intersect