r - 对于 i 循环,调用不同的数据帧

标签 r for-loop

我是循环的新手,我在从第 i 个数据帧调用变量时遇到问题。

我能够正确调用每个数据框,但是当我应该在每个数据框内调用指定变量时,问题来了:

例子:

for (i in 1:15) {
    assign(
      paste("model", i, sep = ""), 
    (lm(response ~ variable, data = eval(parse(text = paste("data", i, sep = "")))))
    )
    plot(data[i]$response, predict.lm(eval(parse(text = paste("model", i, sep = ""))))) #plot obs vs preds
}

在这里,我对一个简单的单变量线性模型做了 15 次,效果很好。当我尝试绘制结果时出现问题。我应该如何调用 data[i] 响应?

最佳答案

假设有多个数据帧,名称为:data1 ...data15,并且没有其他数据对象以字母开头:d,a,t,a。我们还假设在每个数据框中都有名为“响应”和“变量”的列。这会将数据帧收集到一个列表中,并为线性回归线绘制单独的图。

dlist <- lapply ( ls(patt='^data'), get)
lapply(dlist, function(df) 
                 plot(NA, xlim=range(df$variable), ylim=range(df$response)
                 abline( coef( lm(response ~ variable, data=df) ) )
         )

如果您想命名该列表中的数据框,您可以使用粘贴代码提供名称:

names(dlist) <- paste("data", i, sep = "")

您可以在此循环的上下文中进行许多其他分配,但您需要更好地描述期望的结果,而不是失败的结果。

关于r - 对于 i 循环,调用不同的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17907594/

相关文章:

r - 将 R 命令行参数转换为整数向量

以 "long"格式 reshape 表格以分隔列

r - 检查 R 中因子变量的维度

r - 在 R 中包含 zoo 包时出错

Java 程序将 n 以内的整数的倒数相加

java - 如何创建一个 for 循环,在 Java 中按顺序打印字符串数组?

c++ - 比较两个 C 风格字符串的 C++ For 循环的效率和可读性

Javascript for 循环和 setTimeout 问题

r - 在 R 中,如何查看长度为 5 的向量中字符向量的三个元素是否相同

r - 嵌套循环用于评估 R 中矩阵的周围单元格