我正在RStudio中编写一个for循环程序。
当我使用以下命令时,
a <- 10
for (i in c(1:10335) {
a <- a + 0.005
print(a)
}
我在控制台中获得了非常大的输出,因为循环运行了10335次。这个大输出也是总输出的一小部分(一些,可能是1000左右,最后的值)。我也在控制台中松开了我的书面程序。我该如何解决这个问题?如何在输出中获得一组完整的10335值?
此外,有没有办法以excel或文本格式导出此输出?
答案 0 :(得分:3)
我们可以使用seq()
避免for循环:
# using seq instead of forloop
res <- seq(from = 10 + 0.005, to = 10 + 10335 * 0.005, by = 0.005)
# and write to a file
write.table(res, "temp_seq.txt", col.names = FALSE, row.names = FALSE)
或者如果我们必须使用循环,那么使用sink()
函数:
# using loop and sink the output to a file
sink("temp_loop.txt")
a <- 10
for (i in c(1:10335)) {
a <- a + 0.005
print(a)
}
sink()
在这两种情况下,我们都将输出写入文件,因为RStudio控制台对打印有限制。
答案 1 :(得分:2)
您可以将它们添加到现有矢量中,而不是打印值:
a <- 10
results <- vector(length = 10335)
for (i in c(1:10335)) {
a <- a + 0.005
results[i] <- a
}
str(results)
num [1:10335] 10 10 10 10 10 ...
您可以使用write.table:
将结果保存到文本文件中write.table(results, file = "results.txt", row.names = FALSE, col.names = FALSE)