gpt4 book ai didi

r - 在 vector 中添加列但不在 df 中添加列

转载 作者:行者123 更新时间:2023-12-04 10:55:34 25 4
gpt4 key购买 nike

我正在尝试执行以下操作,想知道是否有更简单的方法使用 dplyr 来实现此目的(我确定有):

我想将数据框的列与名称向量进行比较,如果 df 不包含与名称向量中的其中一个名称相对应的列,请将该列添加到 df 并使用 NA 填充其值.

例如,在下面的 MWE 中:

df <- data.frame(cbind(c(1:6),c(11:16),c(10:15)))
colnames(df) <- c("A","B","C")
names <- c("A","B","C","D","E")

我如何使用 dplyr 创建两列 D 和 E(在名称中,但不在 df 中)并用 NA 填充它?

最佳答案

dplyr 中不需要,这只是基本 R 中的基本操作。(顺便说一句,以后尽量避免重写 names 等内置函数。原因 names 仍然有效是因为 R 在全局环境中而不是在基础包 NAMESPACE 文件中查找,但这仍然是一个不好的做法。)

df[setdiff(names, names(df))] <- NA
df
# A B C D E
# 1 1 11 10 NA NA
# 2 2 12 11 NA NA
# 3 3 13 12 NA NA
# 4 4 14 13 NA NA
# 5 5 15 14 NA NA
# 6 6 16 15 NA NA

关于r - 在 vector 中添加列但不在 df 中添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32863224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com