【问题标题】:same pattern on two tables [R]两张桌子上的相同模式 [R]
【发布时间】:2018-04-10 16:56:53
【问题描述】:
我有 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
非常感谢。
【问题讨论】:
标签:
r
dataframe
concatenation
【解决方案1】:
简单的基础 R 解决方案:
data.frame(seq_paired_names = df1$V1[df1$V1 %in% df2$V1])
【解决方案2】:
如果您想要两个表之间对应行相等的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)