我创建了一个动物园对象,以便从this包中应用HargreavesSamani ET(蒸发蒸腾)功能。
输入数据文件为here,我使用的代码如下所示。
require(Evapotranspiration)
require(zoo)
data("constants")
OakPark<- read.csv("OakParkR.csv", header=TRUE)
#Fill the blanks in the csv with NAs
na.fill(OakPark,NA)
#convert to a zoo
OakPark <- as.zoo(OakPark)
#create a zoo series with the required variables
PE.data <- OakPark[ ,c(3,5)]
#Defining the function and associating the data with the function class
funname <- "HargreavesSamani"
class(PE.data) <- funname
然后在应用函数时:
results <- ET(PE.data,constants)
我收到以下错误:
Error in data$Tmax : $ operator is invalid for atomic vectors
我已经尝试将大型动物园转换为数据框并再次尝试,但ET功能仅适用于动物园系列,所以这也无效。
'$ operator对原子矢量无效'的其他帮助页似乎建议改变数据的格式,但我需要找到一种方法来解决这个问题。