将第一行粘贴到列表中的列名

时间:2019-04-24 13:47:47

标签: r

我有68个数据文件,所有文件都具有相同的标识符,但是指示器却不同。我将这些单独的文件转换为一个列表,每个数据框都作为一个单独的元素。 每个数据框的第一行是一年,我想粘贴到列名。我希望能够用“ _”分隔。 例如,现在列名称为Arbeitslose,其下的行为2018。我希望列名称成为Arbeitslose_2018。

我知道如何在单个数据帧上执行此操作。我使用的代码如下。

RAW_2[1,] <- as.character(RAW_2[1,]) # Converting the fist row to a character. 
colnames(RAW_2) <- paste(colnames(RAW_2),RAW_2[1, ], sep = "_") # Paste Year (Row 2) and columnname 
RAW_2 <- RAW_2[rownames(RAW_2) != 1, ] # Drop 1st row which is the years - now abundant

但我不知道该如何执行此操作。 我不能将数据帧合并为一个,因为列名不是唯一的。我需要执行此步骤才能将其合并到数据集中并继续。我被迫处理列表,这让我感到非常恐惧。 是否有捷径可寻?我对如何继续感到迷茫。

1 个答案:

答案 0 :(得分:1)

您可以使用lapply()

rename_col <- function(x){
  colnames(x) <- paste0(colnames(x),x[1,],sep="_")
  x[-1,]
}

#df_list as your list of data.frames
lapply(df_list,rename_col)