【问题标题】:Merging two rows into one header using R使用R将两行合并为一个标题
【发布时间】:2019-05-11 11:34:44
【问题描述】:

我已经进行了一次实验分析,现在我有一个巨大的列表,不幸的是有两个标题如下:

Image       Nuclei                  Cell
Metadata_s  Children_Cells_Count    Intensity_IntegratedIntensityEdge_ERKStain
C4          1                       39.03921669
...         ...                     ...

由于本文档中有 65 行(7x Image、35x Nuclei 和 23x Cells),我想使用 R 自动合并这两列,因为我需要它们在同一列中,如下所示:

Image_Metadata_s    Nuclei_Children_Cells_Count     Cell_Intensity_IntegratedIntensityEdge_ERKStain
C4                  1                               39.03921669
...                 ...                             ...

你们中有人知道,我该如何解决这个问题?我想有一个使用 tidyverse 库的解决方案,但到目前为止我还没有找到任何解决这个问题的方法,如果你们中的某个人可以帮助我,我会非常有帮助。

非常感谢!

【问题讨论】:

    标签: r merge header title tidyverse


    【解决方案1】:
    library(data.table)
    df <- as.data.table(read.table(text = "Image       Nuclei                  Cell
                     Metadata_s  Children_Cells_Count    Intensity_IntegratedIntensityEdge_ERKStain
                     C4          1                       39.03921669",header = T))
    
    for(col in names(df))
    {setnames(df,col,paste0(col,"_",df[1,get(col)]))}
    df <- df[-1]
    
      Image_Metadata_s Nuclei_Children_Cells_Count Cell_Intensity_IntegratedIntensityEdge_ERKStain
    1:               C4                           1                                     39.03921669
    

    【讨论】:

      【解决方案2】:

      我猜你需要paste标题中的第一行,然后删除该行

      names(df) <- paste(names(df), df[1, ], sep = "_")
      df[-1,]
      

      确保列被读取为字符而不是因子。您可以通过执行将它们更改为字符

      df[] <- lapply(df, as.character)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-13
        • 1970-01-01
        相关资源
        最近更新 更多