Hi, I am having a problem using the function ET.PenmanMonteith from the package "Evapotranspiration". I keep getting the error "$ operator is invalid for atomic vectors". Does anyone know the solution?
The code I am using is:
install.packages("readxl")
library("readxl")
install.packages("data.table")
library ("data.table")
2. Daten in R einlesen und anpassen, sodass mit ihnen gearbeitet werden kann
path<-"D:/Documents/TU/Hiwi-LWI/Hannes/01_Verdunstung"
setwd(path)
rohdaten<-read.table("Daten.txt",header=TRUE) #Einlesen der Daten aus Textformat
x<-dim(rohdaten) #Angabe der Dimensionen der Tabelle
data<-as.data.table(rohdaten) # 4 Header Zeilen sind schon entfernt worden
Überschriften für die einzelnen Spalten erstellen, damit damit diese
zugeordnet werden können.
ueberschriften<-c("doy", "rH","TLuft", "u", "P", "Rg", "Rn","H", "e", "e*", "e*-e")
names(data)<-ueberschriften
3. Erstellung von Abbildungen des Temperatur- und Feuchtigkeitsverlaufs
plot(data$TLuft, type="l", ylab="Lufttemperatur [°C]", xlab="Tag", col="red")
plot(data$rH, type="l", ylab="Relative Feuchte [%]", xlab="Tag", col="blue")
pdf("Klimadiagramm.pdf")
par(mar = c(5, 4, 4, 4) + 0.3)
plot(data$P, col="blue", xlab="Tag", ylab="Niederschlag [mm]") # Create first plot
par(new = TRUE) # Add new plot
plot(data$TLuft, type="l" ,col="red", # Create second plot without axes
axes = FALSE, xlab = "", ylab = "")
axis(side = 4, at = pretty(range(data$TLuft))) # Add second axis
mtext("Temperatur [°C]", side = 4, line = 3)
dev.off()
4. Berechnung der Grasreferenzverdunstung mit R-Paket
#install.packages("Evapotranspiration")
library("Evapotranspiration")
#data1<-cbind(data$TLuft, data$TLuft, data$rH, data$rH, data$Rn, data$u)
data1<-cbind(data[,3], data[,3], data[,2], data[,2], data[,7], data[,4])
#datatest <- as.numeric(data1)
#data1<-datatest
data2 <-as.data.frame(data1)
ueberschriften<-c('Tmax', 'Tmin', 'RHmax', 'RHmin', 'n', 'u2')
colnames(data1)<- ueberschriften
colnames(data2)<- ueberschriften
constants<- c(72, 2.45, 0.91280719879303, 0.0820, 2, 4.903*10^-9, 0)
ergebnis<- ET.PenmanMonteith(data2, constants, ts="daily", solar="sunshine hours",wind="yes", crop="short", message="yes")