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

问题描述 投票:0回答:1

我正在尝试计算R中的Zoo数据帧的一列的对数。尽管所有数据都是正数,但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)时,Zoo数据帧看起来与从csv读取的数据帧完全相同。

这里是数据集:enter image description here

谢谢您的帮助。

r dataframe zoo
1个回答
0
投票

[不将整个数据作为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

数据

structure(list(date = structure(c(10957, 10958, 10959), class = "Date"), 
    GDP = c(101020L, 123456L, 654321L)), row.names = c(NA, -3L
), class = "data.frame")
© www.soinside.com 2019 - 2024. All rights reserved.