添加缺少的列后覆盖R中的列表元素

EML

对于数据帧的列表,我想检查是否存在一列,如果不存在,则将具有NA的列添加到所有数据帧。最重要的是,我试图覆盖旧的数据帧。

数据集:

df1 <- data.frame(a=c(1,2), b=c(3,NA))
df2 <- data.frame(b=c(1,2), c=c(3,NA))
df_list=list(df1, df2)
name <- "a"

我的尝试:

df_list <- lapply(df_list, function(x) x[name[!(name %in% colnames(x))]] = NA) 

我正在寻找这个结果:

> df_list
[[1]]
  a  b
1 1  3
2 2 NA

[[2]]
  b  c  a
1 1  3 NA
2 2 NA NA
K

修改您的代码-缺少的是返回更新的代码x或使用setdiff

#lapply(df_list, function(x) x[name[!(name %in% colnames(x))]] = NA) #Your original code
lapply(df_list, function(x) {x[name[!(name %in% colnames(x))]] = NA; x}) #Modified
lapply(df_list, function(x) {x[,setdiff(name, names(x))] <- NA; x}) #Alternative
#[[1]]
#  a  b
#1 1  3
#2 2 NA
#
#[[2]]
#  b  c  a
#1 1  3 NA
#2 2 NA NA

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从列表中查找缺少的元素

元素列表后出现SyntaxError:缺少]

MongoDB中元素列表后缺少“]”

MongoDB SyntaxError:元素列表后缺少]

在列表中添加元素后如何空白输入字段?

如何将元素添加到现有元素而不是在列表中覆盖它们?

R 将元素添加到列表中的列表

在 R 中的列表中添加向量(不是矩阵)中的元素

将列添加到数据框中以显示该行中的元素是否在 R 中的某个列表中

在R中的for循环中向列表中添加元素

如何在R中的列表中添加元素(循环)

在R中的列表中添加元素的最快方法

缺少(當在 setAttribute onClick 中添加 forEach 元素時的參數列表之後

列表元素在for循环R中被覆盖?

JAXB元素列表中缺少字段

ValueError,元组列表中缺少元素

找到的元素列表中缺少 Webdriver HTML

为什么元组大小在其列表元素中添加元素后不会改变

向R中的列表添加新元素(标签)

添加新元素后如何更新列表

使用一种列表理解后,是否有可能继续在列表中添加元素?

添加支持语言列表中缺少的语言

谷歌地图事件对象的元素列表后缺少]

使用setInterval时,元素列表后出现SyntaxError:缺少]

在列表中添加列表中的元素

在列表的元素中添加空格

在列表中添加元素

在列表元素中添加引号

将 array.tolist() 添加到 Pandas 数据框中的一列后,获取每个单元格中存储一个元素的列表