R - 不能在动物园向量上使用 log()(数学函数的非数字参数)

R - Cannot use log() on a zoo vector (non-numeric argument to mathematical function)

我正在尝试计算 R 中动物园数据框的一列的对数。 尽管所有数据都是正数,R 表示(数学函数的非数字参数)。

奇怪的是,在将数据转换为动物园数据框之前将其应用于数据时,它会起作用。

我不明白为什么。

这是我的代码:

library(zoo)
data <- read.csv(file="dataecm/data.csv", sep = ";", stringsAsFactors=FALSE)
log(data$GDP) ### Works
datats<-zoo(data, order.by = data$DATE)
log(datats$GDP) ### Does not work ->  (non-numeric argument to mathematical function)

顺便说一下,当使用 View(datats) 时,动物园数据框看起来与从 csv 读取的数据框完全一样。

这是数据集:

感谢您的帮助。

不要将整个数据作为 zoo 的第一个参数。

datats <- zoo(data$GDP, order.by = data$DATE)

datats 现在是一个仅包含给定日期

的 GDP 的时间序列

然后登录 datats 就可以了

log(datats)
#2000-01-01 2000-01-02 2000-01-03 
#  11.52307   11.72364   13.39135

数据:

data <- structure(list(DATE = structure(c(10957, 10958, 10959), class = "Date"), 
    GDP = c(101020L, 123456L, 654321L)), row.names = c(NA, -3L
), class = "data.frame")