read.zoo总是打印出结果 - 为什么?

时间:2012-05-02 16:38:01

标签: r zoo

我使用read.zoo将制表符分隔的数据文件读入动物园时间序列。我有以下代码:

z <- read.zoo("poolBL03GD04_842_WMO_03862.tts", index=2:5, FUN = conv)

据我了解,这是将read.zoo函数的结果分配给z变量,但它也打印出read.zoo的整个结果。为什么会这样,我怎么能阻止它?

使用可重现的示例进行了更新:

library(chron)
library(zoo)

conv <- function(y,m,d,t) {
  date_str <- paste(m,"/", d, "/", y, " ", sep="")
  time_str <- paste(t, ":00", sep="")
  print(date_str)
  print(time_str)
  chron(date_str, time_str)
}

zz <- textConnection("51645  2000 04 11  00:00  2367.35   80.9   12.5
51645  2000 04 11  01:00  2370.38   88.8   13.7
51645  2000 04 11  02:00  2357.50   80.6   12.5
51645  2000 04 11  03:00  2360.38   87.2   13.5
51645  2000 04 11  04:00  2354.70   84.0   12.9
51645  2000 04 11  05:00  2345.91   79.3   12.2")
z <- read.zoo(zz, index=2:5, FUN = conv, header=F)

尝试在函数中使用read.zoo时,这更令人沮丧。

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:5)

评论print函数中的conv行。

conv <- function(y,m,d,t) {
  date_str <- paste(m,"/", d, "/", y, " ", sep="")
  time_str <- paste(t, ":00", sep="")
#  print(date_str)
#  print(time_str)
  chron(date_str, time_str)
}

答案 1 :(得分:1)

我对动物园知之甚少,但值得注意的是你可以使用capture.output强制任何东西将它的输出发送给变量。