使用 R 将两行合并为一行 header

Merging two rows into one header using R

我进行了实验分析,现在我有一个巨大的列表,不幸的是有两个 headers 如下所示:

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

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

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

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

非常感谢!

我想您需要 paste header 中的第一行,然后删除该行

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

确保列被读取为字符而不是因子。您可以通过

将它们更改为字符
df[] <- lapply(df, as.character)
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