【问题标题】:How to use a dataset to extract specific columns from another dataset?如何使用数据集从另一个数据集中提取特定列?
【发布时间】:2020-03-06 17:03:44
【问题描述】:

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

【问题讨论】:

  • 你可以使用df1[, df2$snp]
  • 您知道如何执行此操作以保留 data2 中的“i..POP”列吗?

标签: r dataframe data-wrangling


【解决方案1】:

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

snp.common <- intersect(data1$snp, colnames(data2$snp))
data2.separated <- data2[,snp.common]

【讨论】:

    【解决方案2】:

    最好提供minimal reproducible example

    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
    

    【讨论】:

    • 只要df2$snpdf1 列名的子集就可以工作。
    • @mob 从问题出发并提供我假设的数据。但你当然是对的......无论如何,这就是 MRE 派上用场的地方。
    猜你喜欢
    • 1970-01-01
    • 2015-08-20
    • 2020-11-22
    • 2021-08-26
    • 2016-07-19
    • 2014-07-30
    • 2020-05-07
    • 2021-02-08
    • 2020-01-10
    相关资源
    最近更新 更多