【发布时间】:2023-03-26 21:45:01
【问题描述】:
我想从包含 11 个变量的列表中创建新变量,这些变量在当前数据集中不存在(为了让我的所有数据集都具有相同的维度并能够“绑定”它们)。
这是我尝试做的(对不起,我知道这真的效率低下,我是 R 新手 - 可能有更好的方法):
DataInd <- list()
listInd <- list("SDGFPALL","WHS4_154","WHS4_100","WHS4_106","TB_1","HIV_ARTCOVERAGE","MDG_0000000013",
"WSH_SANITATION_BASIC","BP_04","NCD_GLUC_04","TOBACCO_0000000192","WHS6_102","HWF_0001",
"HRH_41","MH_6","SDGIHR2018","SDGIHR")
Labels <- list("year","region","country","gho","publishstate","value","worldbankincomegroup","residenceareatype","datasource","agegroup","sex")
for (k in 1:length(listInd)){
print(k)
Ind_name <- listInd[k]
df <- get_data(Ind_name)
listvar <- list(colnames(df))
for (m in 1:length(Labels)){
if(!(Labels[[m]] %in% colnames(df))){
Var <- paste0("df$",Labels[m])
Var <- NA
}
}
DataInd[[length(DataInd)+1]] <- df
}
DataAll <- do.call(rbind,DataInd)
“Var”不起作用。我还没有设法将 NA 分配给需要从列表中创建的新变量。
也许将一个空数据集与我想要的 11 个变量与每个数据集合并?这行得通吗?
非常感谢,
N.
【问题讨论】:
-
检查
rbindlist来自data.table及其fill参数。