使用 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
我进行了实验分析,现在我有一个巨大的列表,不幸的是有两个 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