我对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中,我有时使用&
来克服这些障碍。我很想听听您的建议。
答案 0 :(得分:2)
嗨,您可以做这样的事情。请参阅下面的示例代码
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
我还没有直接解决您的代码,因为不建议SO完全解决任务,而只是提供解决方案的一般指南。我建议您阅读以下内容:https://stats.idre.ucla.edu/r/modules/subsetting-data/以更好地理解R中的子集。 另请参阅https://cran.r-project.org/doc/manuals/R-lang.html#Indexing以了解R中的索引。 从上方:
使用$的形式适用于递归对象,例如列表和成对列表。它仅允许使用文字字符串或符号作为索引。也就是说,索引是不可计算的:对于需要评估表达式以找到索引的情况,请使用x [[expr]]。将$应用于非递归对象是错误的。