R 选择数据框的列,填充NA';所选列中的s不';不存在

R 选择数据框的列,填充NA';所选列中的s不';不存在,r,select,dataframe,subset,na,R,Select,Dataframe,Subset,Na,以这个数据帧为例 temp <- data.frame('a' = 1:3, 'b' = 4:6, 'd' = 7:9) 得到 a b c 1 4 NA 2 5 NA 3 6 NA 您可以通过两个步骤来完成此操作——限制数据帧中的请求列,然后添加不在数据帧中的请求列。您可以使用intersect和setdiff获取这两组列名: temp2 <- temp[intersect(colVec, names(temp))] temp2[setdiff(colVec, names(tem

以这个数据帧为例

temp <- data.frame('a' = 1:3, 'b' = 4:6, 'd' = 7:9)
得到

a b c
1 4 NA
2 5 NA
3 6 NA

您可以通过两个步骤来完成此操作——限制数据帧中的请求列,然后添加不在数据帧中的请求列。您可以使用
intersect
setdiff
获取这两组列名:

temp2 <- temp[intersect(colVec, names(temp))]
temp2[setdiff(colVec, names(temp))] <- NA
temp2
#   a b  c
# 1 1 4 NA
# 2 2 5 NA
# 3 3 6 NA

temp2您可以通过两个步骤来完成此操作——限制数据帧中的请求列,然后添加不在数据帧中的请求列。您可以使用
intersect
setdiff
获取这两组列名:

temp2 <- temp[intersect(colVec, names(temp))]
temp2[setdiff(colVec, names(temp))] <- NA
temp2
#   a b  c
# 1 1 4 NA
# 2 2 5 NA
# 3 3 6 NA

temp2只需执行
temp[,colVec[colVec%in%names(temp)]
即可,如果您确实想添加
NA
列(为什么?),请使用
用缺少的列名追加
NA
。只需执行
temp[,colVec[colVec%in%names(temp)]
即可,如果确实要添加
NA
列(为什么?),则使用
以附加
NA
和缺少的列名。
temp2 <- temp[intersect(colVec, names(temp))]
temp2[setdiff(colVec, names(temp))] <- NA
temp2
#   a b  c
# 1 1 4 NA
# 2 2 5 NA
# 3 3 6 NA