我在R中有这行代码:
newDF <-oldDF[subsettingColumns]
Run Code Online (Sandbox Code Playgroud)
subsettingColumns有一些列名可能存在,也可能不存在oldDF.如果它不存在,我想要一个newDF用NA's 插入同一位置的列.如何在R中使用它?
我们来举个例子:
df <- data.frame(a = c(1, 2, 3, 4), b = c(4, 5, 6, 7))
df
# a b
#1 1 4
#2 2 5
#3 3 6
#4 4 7
#Columns to take subset of
subsettingColumns <- c('a', 'd', 'e')
#Columns which are already present
cols <- subsettingColumns[subsettingColumns %in% names(df)]
#Add them in the new dataframe
newdf <- df[cols]
#Assign NA to the columns which are not defined in the original dataframe
newdf[setdiff(subsettingColumns, cols)] <- NA
newdf
# a d e
#1 1 NA NA
#2 2 NA NA
#3 3 NA NA
#4 4 NA NA
Run Code Online (Sandbox Code Playgroud)
如果function列在数据框中不存在,您可以添加列,如下所示:
AddColumn <- function(oldDF, subsettingColumns) {
addCol <-subsettingColumns[!subsettingColumns%in%names(oldDF)]
if(length(addCol)!=0) oldDF[addCol] <- NA
oldDF
}
Run Code Online (Sandbox Code Playgroud)
在示例数据上测试此函数:
# Example data
oldDF <- data.frame(A = c(1, 2, 3, 4, 5), B = c(11, 12, 13, 14, 15))
AddColumn(oldDF, "testColumn")
# A B testColumn
#1 1 11 NA
#2 2 12 NA
#3 3 13 NA
#4 4 14 NA
#5 5 15 NA
AddColumn(oldDF, c("testColumn1", "testColumn2")
# A B testColumn1 testColumn2
#1 1 11 NA NA
#2 2 12 NA NA
#3 3 13 NA NA
#4 4 14 NA NA
#5 5 15 NA NA
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |