如何构建函数从列表中数据框的列名提取数字并替换列值
批量处理数据框列表:提取列名数字替换对应列值
需要处理一个包含大量数据框的列表,核心目标是:提取每个数据框最后一列列名中的纯数字,并用该数字替换该列的所有数值。
示例数据
df1 <- data.frame(A = 1, B = 2, xx123xx = NA) df2 <- data.frame(X = 1, Y = 2, xx456xx = NA) dfList <- list(df1, df2)
构建处理函数
我们可以编写一个自定义函数,对单个数据框完成需求中的操作:
process_df <- function(df) { # 获取最后一列的索引 last_col_idx <- ncol(df) # 提取最后一列的列名,移除非数字字符后替换列值 df[, last_col_idx] <- gsub("[^0-9]", "", colnames(df)[last_col_idx]) return(df) }
批量处理整个列表
使用lapply对列表中的所有数据框批量应用上述函数:
dfList_processed <- lapply(dfList, process_df)
处理后结果
运行print(dfList_processed)会得到预期输出:
[[1]] A B xx123xx 1 1 2 123 [[2]] X Y xx456xx 1 1 2 456
内容的提问来源于stack exchange,提问作者Jesse Shirton
相关产品推荐
相关产品推荐

