我正在修改现有的R脚本,我基本上在学习它的同时选择了R。我没有强大的编程背景(我正在学习),所以我希望有人可以简单地帮助解释这个for循环的一部分。 (注意这是在其他一些软件包中使用ggplot2)
files <- unique(SQLTable$file_names)
for (i in 1:3){
dat <- subset(SQLTable,file_names==files[])
g <- ggplot(dat) + geom_point(aes(x = id, y = Value), size = 1, shape = 19, colour = 'red') +
geom_line(aes(x = id, y = Value), size =.5) +
facet_grid(Measure ~., scales = "free")
print(g)
}
不要担心SQLTable,file_names,id或Value,它们都是SQL表或列名。上面的代码是一个更大的脚本的一部分,但我试图找出(i in 1:3)在for循环中做了什么。我几乎得到了循环中发生的所有其他内容,但我已将其修改为(我在1:2中)一直到(i in 1:100)并且它似乎没有做太多改变。那么目的是什么?为什么它特别是1:3?我希望这不依赖于其他事情,但如果确实如此,也许你可以解释一下这部分在做什么?
编辑:当我运行该部分代码时,我收到以下消息6次。
geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?
接着是
Warning messages:
1: In File_names == secnarios[]:
longer object length is not a multiple of shorter object length
2: In File_names == secnarios[]:
longer object length is not a multiple of shorter object length
3: In File_names == secnarios[]:
longer object length is not a multiple of shorter object length
当我使用file_names==files[i]
运行代码时,我得到了这个:
geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?
Warning messages:
1: In loop_apply(n, do.ply) :
Removed 3 rows containing missing values (geom_point).
2: In loop_apply(n, do.ply) :
Removed 3 rows containing missing values (geom_point).
3: In loop_apply(n, do.ply) :
Removed 3 rows containing missing values (geom_path).
4: In loop_apply(n, do.ply) :
Removed 3 rows containing missing values (geom_path).
答案 0 :(得分:1)
循环本身没有i
,这只会重复{ ... }
三次中的任何内容。你只是重新计算所有内容并覆盖相同的变量三次,或者在你的情况下为100.这就是为什么它不会改变任何东西。
您得到错误6次,因为每次迭代都会导致两个问题。