本文介绍了如何重命名数据框中的所有列,以包含列表中所有数据框的数据名称?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我有一个数据框列表 listofdfs 。要重命名列表中的某个数据框 singledf 的列,可以使用以下代码: colnames(listofdfs [[singledf]]) / pre> 目标 要重命名所有数据框的所有列数据框列表 listofdfs ,以在所有相应列名称中包含数据框的名称。 尝试1 我在listofdfs){ colnames(listofdfs [i])< - paste(colnames(listofdfs [i]),i)} $ b 发生此错误 错误in`* tmp *`[i]:无效的下标类型'list' 尝试2 for(i in listofdfs){ newnames< - paste(colnames(listofdfs [i ]),i) colnames(bsl)< - 新名称} 发生此错误 没有打印错误,但是当我检查其中一个数据框的列时,列名保持不变。 > 尝试3 for(i in listofdfs ){ colnames(listofdfs [[i]])< - paste(colnames(listofdfs [[i]]),i)} pre> 发生此错误 listofdfs [[i]]中的错误:无效的下标类型'list' #示例数据a b< - data.frame(col_01 = 11:20,col_02 = 20:11) #data.frames list_of_df< ; - 列表(a,b) #data.frames 名称(list_of_df)< -c(a,b) #我的序列和data.frames在列表中的名称 my_seq< - seq_along(list_of_df) my_list_names< - names(list_of_df) #procedure (for my_seq){ names(list_of_df [[my_seq [i]]])< - paste(my_list_names [i],names(list_of_df [[my_seq [i ]]]),sep =_) } list_of_df $ a a_col1 a_col2 1 1 10 2 2 9 3 3 8 4 4 7 5 5 6 6 6 5 7 7 4 8 8 3 9 9 2 10 10 1 $ b b_col_01 b_col_02 1 11 20 2 12 19 3 13 18 4 14 17 5 15 16 6 16 15 7 17 14 8 18 13 9 19 12 10 20 11 I have a list of data frames listofdfs. To rename the columns of one of the dataframes singledf in the list, the following code works:colnames(listofdfs[["singledf"]]) <- paste(colnames(listofdfs[["singledf"]]), "singledf")Aim To rename all columns for all data frames in a list of dataframes, listofdfs, to include the name of the dataframe in all of the respective column names. Attempt 1for (i in listofdfs){ colnames(listofdfs[i]) <- paste(colnames(listofdfs[i]), i)}This error occursError in `*tmp*`[i] : invalid subscript type 'list'Attempt 2for (i in listofdfs){ newnames <- paste(colnames(listofdfs[i]), i) colnames(bsl) <- newnames}This error occursNo error is printed, however when I check one of the dataframes' columns the column names remain unchanged.Attempt 3for (i in listofdfs){ colnames(listofdfs[[i]]) <- paste(colnames(listofdfs[[i]]), i)}This error occursError in listofdfs[[i]] : invalid subscript type 'list' 解决方案 Below is a code that renames the column names of each data.frame in a list in a way so that names of data.frames are added to original column names.# example dataa <- data.frame(col1 = 1:10, col2 = 10:1)b <- data.frame(col_01 = 11:20, col_02 = 20:11)# list of data.frameslist_of_df <- list(a, b)# names of data.framesnames(list_of_df) <- c("a", "b")# my sequence and names of data.frames in a listmy_seq <- seq_along(list_of_df)my_list_names <- names(list_of_df)# procedurefor (i in my_seq) { names(list_of_df[[my_seq[i]]]) <- paste(my_list_names[i], names(list_of_df[[my_seq[i]]]), sep = "_")}list_of_df$a a_col1 a_col21 1 102 2 93 3 84 4 75 5 66 6 57 7 48 8 39 9 210 10 1$b b_col_01 b_col_021 11 202 12 193 13 184 14 175 15 166 16 157 17 148 18 139 19 1210 20 11 这篇关于如何重命名数据框中的所有列,以包含列表中所有数据框的数据名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-16 13:00