【问题标题】:how to call a column name using loop:如何使用循环调用列名:
【发布时间】:2018-09-11 21:25:49
【问题描述】:

我对 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 中,我有时会使用 &amp; 来克服这些障碍。我很想听听您的建议。

【问题讨论】:

  • 也许你必须使用这个data[data$Def_Year==Year,"Good_Bad"],data[data$Def_Year==Year,"Var"]

标签: r loops dataframe


【解决方案1】:

您好,您可以这样做。请参阅下面的示例代码

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]]。将 $ 应用于非递归对象是错误的。

【讨论】:

    猜你喜欢
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 2011-08-23
    相关资源
    最近更新 更多