我有2个数据框,我需要创建一个
让我解释一下:
我的两个表包含很多行:这是一个例子:
V1 V2 V3 V4 V5 V6 V7
1 A Complete scaffold_544 98748 122355 4337.2 2808
2 B Complete scaffold_1077 32765 40727 2934.3 1759
3 C Complete scaffold_2 65354 76523 3248.4 1924
4 D Complete scaffold_174 33084 44463 1403.8 1171
V1 V2 V3 V4 V5 V6 V7
1 A Complete scaffold_544 98748 122355 4337.2 2808
2 E Complete scaffold_1077 32765 40727 2934.3 1759
3 G Complete scaffold_2 65354 76523 3248.4 1924
4 D Complete scaffold_174 33084 44463 1403.8 1171
然后我需要比较V1列并创建一个这样的表:
seq_paired_names
1 A
2 D
非常感谢你。
答案 0 :(得分:1)
如果您想要两个表之间相应行相等的V1
值,则可以执行inner_join
,如下所示。
library(dplyr)
df1 %>%
inner_join(df2) %>%
select(seq_paired_names = V1)
如果您只是想知道两个表中V1
的值是哪个,可以使用intersect
。
data.frame(seq_paired_names = intersect(df1$V1, df2$V1))
使用的数据
df1 <- read.table(text = 'V1 V2 V3 V4 V5 V6 V7
1 A Complete scaffold_544 98748 122355 4337.2 2808
2 B Complete scaffold_1077 32765 40727 2934.3 1759
3 C Complete scaffold_2 65354 76523 3248.4 1924
4 D Complete scaffold_174 33084 44463 1403.8 1171'
,head = T
,stringsAsFactors = F)
df2 <- read.table(text = ' V1 V2 V3 V4 V5 V6 V7
1 A Complete scaffold_544 98748 122355 4337.2 2808
2 E Complete scaffold_1077 32765 40727 2934.3 1759
3 G Complete scaffold_2 65354 76523 3248.4 1924
4 D Complete scaffold_174 33084 44463 1403.8 1171'
,head = T
,stringsAsFactors = F)
答案 1 :(得分:1)
简单的基础R解决方案:
data.frame(seq_paired_names = df1$V1[df1$V1 %in% df2$V1])