R尝试执行for循环,错误

时间:2015-06-23 18:22:37

标签: r loops

我正在尝试像这样做一个for循环:

 for (n in 1:200)
  {
pre[n] <- aggregate(S[n]~Secs[n], data = dataframe, FUN = sum)   
freqsdf[n] <- data.frame(table(SecsOnly2$Secs[n])) 
AVAL[n] <- pre[n]$S[n]/freqsdf[n]$Freq
AVAL[n] <- data.frame(AVAL[n])
hist(dataframe$Secs[n], xlab = "", ylab = "", ylim = c(0, 16000), axes = FALSE, col = "grey")
axis(4, ylim = c(0, 16000), col = "black", col.axis = "black", las = 2, cex.axis = .5)
par(new = TRUE)
plot(pre[n]$Secs[n], AVAL[n], col = "red" , type = "l")
abline(h = 0.25) }

但是我收到了这个错误:

Error in eval(expr, envir, enclos) : object 'S' not found

我的数据集包含&#34; S&#34;变量有一堆变量,包括&#34; S1&#34;通过&#34; S200。&#34;我希望R为所有&#34; S&#34;变量,&#34; Secs&#34;变量等...这个代码只适用于S1,当我为S1,Secs1等编写它时(不在循环中)。但我希望R为我的所有专栏都使用相同的代码。我不确定为什么&#34; S&#34;没找到。我想从n = 1到n = 200,R自动查找&#34; S1&#34;,&#34; Secs1,&#34;等...第一次循环运行,然后&#34; S2&#34;,&#34; Secs2,&#34;等...第二次运行,依此类推。

1 个答案:

答案 0 :(得分:0)

在这一行(以及其他几个地方):

pre[n]$S[n]/freqsdf[n]$Freq

您正在尝试将SSecs以及您正在使用的[n]粘贴到S01列的子集中,但是当您尝试从第n个项目中获取第n个项目时,R正在解释它S不存在。在没有看到你的数据的情况下很难修复,但是你可以尝试更换你尝试过的每个地方并用以下方法来做这个伎俩:

pre[n][[paste("S", n, sep="")]]