我是R的新手,我想知道使用for循环调用不同列的最佳方式是什么。
我的代码是这样的:
Variables <- c("Var1","Var2","Var3","Var4","Var5","Var6","Var7")
Years <- c(2015,2016,2017,2018)
for (Year in Years) {
for (Var in Variables) {
TT = auc(data[data$Def_Year==Year,]$Good_Bad,
data[data$Def_Year==Year,]$Var)
print (TT)
}
}我尝试计算每个变量在每年的AUC ( roc曲线下的面积),以检查信用评分模型的性能稳定性。问题是R不理解$Var命令。在excel中,我有时会使用&来克服这些障碍。我很想听听你的建议。
发布于 2018-09-12 05:40:57
嗨,你可以做这样的事情。请参阅下面的示例代码
df <- data.frame(v1 = c(1,2,3), v2 = c(4,5,6))
variables <- c("v1", "v2")
for(var in variables) {
print(df[, var])
}
Output:
[1] 1 2 3
[1] 4 5 6我没有直接解决你的代码,因为它不是被建议完全解决任务,而是给出解决方案的一般指导方针。我建议你通过这个:https://stats.idre.ucla.edu/r/modules/subsetting-data/来更好地理解R中的子集。另请参阅https://cran.r-project.org/doc/manuals/R-lang.html#Indexing来理解R中的索引。
使用$的表单适用于递归对象,如列表和配对列表。它只允许将文字字符串或符号作为索引。也就是说,索引不是可计算的:对于需要计算表达式来查找索引的情况,可以使用x[expr]。将$应用于非递归对象是错误的。
https://stackoverflow.com/questions/52284434
复制相似问题