-1

如何使用数据集从另一个数据集中提取特定列?

4

2 回答 2

0

提供一个最小的可重现示例总是更好:

df1 <- data.frame(V1 = 1:3,
                  V2 = 4:6,
                  V3 = 7:9)

df2 <- data.frame(snp = c("V2", "V3"),
                  stringsAsFactors=FALSE)

现在我们可以使用字符向量来索引我们想要的列:

df1[, df2$snp]

回报:

  V2 V3
1  4  7
2  5  8
3  6  9

编辑:

您知道如何执行此操作以保留 data2 中的“i..POP”列吗?

df1 <- data.frame(ID = letters[1:3],
                  V1 = 1:3,
                  V2 = 4:6,
                  V3 = 7:9)
names(df1)[1] <- "ï..POP"

df2 <- data.frame(snp = c("V2", "V3"),
                  stringsAsFactors=FALSE)

我们可以使用c来组合列的名称:

df1[, c("ï..POP", df2$snp)]
  ï..POP V2 V3
1      a  4  7
2      b  5  8
3      c  6  9
于 2020-03-06T17:09:14.770 回答
0

用于intersect查找两个数据集之间的通用名称。

snp.common <- intersect(data1$snp, colnames(data2$snp))
data2.separated <- data2[,snp.common]
于 2020-03-06T17:09:57.983 回答