【问题标题】:How do I manipulate my dataframe to keep the columns with matching rownames?如何操作我的数据框以保留具有匹配行名的列?
【发布时间】:2021-11-17 22:18:28
【问题描述】:

我有一个包含 77 行和 460 列的数据框。第一列代表标题为“RS_number”的每一行的 rsID。这些列均由 SNP rsID 标记(例如 rs4751)。

我需要将此数据框的尺寸限制为 76 X 76,反映与变量“RS_number”相同的列名。我的第一个想法是让 row.names 等于第一列“RS_number”,但我不知道如何继续前进以及如何将列限制为与行名相同的标识符。

以下是我用来创建数据框的代码和数据框的示例:

'''newdf = concatenated[concatenated$RS_number %in% colnames(hours)[3:76],] %>% 
 as.data.frame()'''



     RS_number rs1 rs2 rs3 rs4 rs10
[,1]  rs1       1.0 0.2 0.3 0.4 NA
[,2]  rs2       0.0 1.0 0.0 NA  0.2
[,3]  rs3       0.2 0.1 1.0 NA  NA
[,4]  rs4       0.0 0.1 0.5 1.0 NA
[,5]  rs5       NA  0.1 NA  0.2 NA
[,6]  rs9       0.5 0.4 0.1 0.0 0.6

我希望我的数据框只保留那些常见的列和 RS_number,包括 rs1、rs2、rs3、rs4,并排除 rs5 和 rs10。

【问题讨论】:

    标签: r dataframe matrix correlation genetic


    【解决方案1】:

    我们可以将intersect 与“Rs_number”列值和“df1”列名一起使用,然后将“Rs_number”与相交元素连接以选择列

    nm1 <- intersect(df1$Rs_number, names(df1))
    df1[c("Rs_number", nm1)]
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      相关资源
      最近更新 更多