考虑这个例子:z是一个写入csv的简单数据帧。
> z
Date ID HH
1 2018-01-01 1 4
2 2018-01-02 2 5
3 2018-01-03 3 6
> class(z)
[1] "data.frame"
> write.zoo(z, "z.csv", row.names=FALSE)
选项" row.names = FALSE"应该关闭行索引" 1,2,3"。但它并没有。索引仍在csv文件中,如果使用日期从z.csv文件读回,则返回错误:
> zz <- read.zoo("z.csv", header=T, format="%Y-%m-%d")
Error in read.zoo("z.csv", header = T, format = "%Y-%m-%d") :
index has bad entries at data rows: 1 2 3
write.zoo的语法有什么问题吗?如何摆脱指数?这是遗留代码,因此使用write.zoo(或read.zoo)比使用其他函数更容易。
答案 0 :(得分:0)
您可以使用check.names = FALSE
来解决使用实际动物园对象的问题,即
# install.packages(c("zoo"), dependencies = TRUE)
library(zoo)
z <- structure(c("2018-01-01", "2018-01-02", "2018-01-03", "1", "2",
"3", "4", "5", "6"), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("Date", "ID", "HH")), index = 1:3, class = "zoo")
z
#> Date ID HH
#> 1 2018-01-01 1 4
#> 2 2018-01-02 2 5
#> 3 2018-01-03 3 6
class(z)
#> [1] "zoo"
write.zoo(z, "Zoo_bar.csv")
z2 <- read.zoo("Zoo_bar.csv", header = TRUE, check.names = FALSE)
z2
#> Date ID HH
#> 1 2018-01-01 1 4
#> 2 2018-01-02 2 5
#> 3 2018-01-03 3 6