如何在R语言中给数据框列表添加名为new的空列
给列表中每个数据框添加空列的方法
你之前用df$new <- NA没效果,是因为df是数据框组成的列表,这段代码是给列表本身新增一个名为new的元素,而非给列表内的每个子数据框添加列。以下是几种简化的实现方式:
方法1:基础R的lapply(最通用)
遍历列表中的每个数据框,为其添加new列并赋值为NA:
df <- lapply(df, function(x) { x$new <- NA x })
方法2:基础R的transform(更简洁)
利用transform函数直接给数据框加列,代码更短:
df <- lapply(df, transform, new = NA)
方法3:tidyverse风格(需加载purrr和dplyr)
如果习惯用tidyverse工具链,可结合purrr::map和dplyr::mutate:
library(purrr) library(dplyr) df <- map(df, ~ mutate(.x, new = NA))
验证效果:运行上述代码后,查看第一个数据框df[[1]],就能看到新增的new列。
内容的提问来源于stack exchange,提问作者MM1
相关产品推荐
相关产品推荐

