使用 write.table 将列表写入 R 中的 .dat
Writing a list into a .dat in R using write.table
我正在尝试将此循环生成的数字列表写入文件。
我使用下面的代码我已经能够做到这一点,但输出并不是我想要的。
我知道我需要使用 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)
}
}
在输出中得到“x”的原因是因为这是使用 write.table
时的默认列名。如果您不想在输出中包含列名,请使用 col.names = FALSE
,它只会在输出中打印数字。
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=",",
row.names=FALSE, quote=FALSE, col.names = FALSE)
}
}
也可以用没有循环的向量化方式来写。
write.table(years[years %% 400 == 0 | (years %% 4 == 0 & years %%100 != 0)],
"file.dat", sep=",", row.names=FALSE, quote=FALSE, col.names = FALSE)
我正在尝试将此循环生成的数字列表写入文件。 我使用下面的代码我已经能够做到这一点,但输出并不是我想要的。 我知道我需要使用 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)
}
}
在输出中得到“x”的原因是因为这是使用 write.table
时的默认列名。如果您不想在输出中包含列名,请使用 col.names = FALSE
,它只会在输出中打印数字。
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=",",
row.names=FALSE, quote=FALSE, col.names = FALSE)
}
}
也可以用没有循环的向量化方式来写。
write.table(years[years %% 400 == 0 | (years %% 4 == 0 & years %%100 != 0)],
"file.dat", sep=",", row.names=FALSE, quote=FALSE, col.names = FALSE)