【发布时间】:2021-06-24 11:44:01
【问题描述】:
我正在尝试将此循环产生的数字列表写入文件。 我使用下面的代码已经能够做到这一点,但输出并不完全是我想要的。 我知道我需要使用 write.table 并且需要将其保存为 .dat
谁能告诉我为什么“x”在每行之间打印? **我在文件中得到的内容:**
x
1800
x
1804
x
1808
x
等等...
我想要什么:
1804
1808
1812
等等...
years <- seq(1800,2020)
for (i in years){
i_div_400 <- i%%400
if (i_div_400 == 0 & (i%%4 == 0 && i%%100 != 0)){
write.table(i, "file.dat", append=TRUE, sep=",", quote=FALSE)
}
}
【问题讨论】:
-
你确定这是你得到的输出吗?
i_div_400 == 0每 400 年才成立一次。它不应该写任何东西。但是write.table期望编写一个带有列名等的data.frame。如果您只想写一个文字值,请考虑使用writeLines()。此外,在实际写入之前生成要写入的值列表会更有效。 -
对不起,你是对的,我之前发错了单元格。我用正确的代码编辑了帖子
-
当您不在任何地方使用
leap时,为什么还要使用leap <- matrix(i)?我也不明白为什么当if条件中的代码完全相同时,你有两个单独的if条件。 -
该矩阵应该已被注释掉。 if 不是一行
标签: r list file for-loop write.table