变量对象名称的$operator
我正在尝试使用$运算符在可变创建的data.frame对象上的for循环中选择和重新格式化特定列。我在我的注释代码中尝试了4种不同的解决方案,但都不起作用。我找遍了所有地方,但似乎没有找到另一种解决办法。 如何使用$运算符选择具有变量data.frame名称的特定列 谢谢变量对象名称的$operator,r,R,我正在尝试使用$运算符在可变创建的data.frame对象上的for循环中选择和重新格式化特定列。我在我的注释代码中尝试了4种不同的解决方案,但都不起作用。我找遍了所有地方,但似乎没有找到另一种解决办法。 如何使用$运算符选择具有变量data.frame名称的特定列 谢谢 weather_data_files<-c("CMC","ECMWF","ECMWF_VAR_EPS_MONTHLY_FORECAST", "GFS","ICON_EU
weather_data_files<-c("CMC","ECMWF","ECMWF_VAR_EPS_MONTHLY_FORECAST",
"GFS","ICON_EU","UKMET_EURO4")
for(filename in weather_data_files){
#create data frame environment objects
assign(paste(filename),read.csv(file = paste(filename,".csv",sep = ""),sep = ";"))
#first solution does not work, because filename is here an atomic vector
#rather than a data.frame
#ErrorMessage: $ operator is invalid for atomic vectors
filename$Forecast.Time<- as.POSIXct(filename$Forecast.Time,
format="%d.%m.%Y %H:%M+%S",tz="UTC")
#ok get it, let's try second soltution,but
#it also does not work allthough i try to get the data.frame object
#ErrorMesssage: could not find function "get<-
get(filename)$Forecast.Time<-
as.POSIXct(get(filename)$Forecast.Time,format="%d.%m.%Y %H:%M+%S",tz="UTC")
#Third solution as.name also does not work
#ErrorMessage: object of type 'symbol' is not subsettable
as.name(filename)$Forecast.Time<-
as.POSIXct(as.name(filename)$Forecast.Time,format="%d.%m.%Y %H:%M+%S",tz="UTC")
#Fourth solution comparable to second solution, still not working
#ErrorMessage: could not find function "eval<-"
eval(assign(filename,get(filename)))$Forecast.Time<-
as.POSIXct(eval(assign(filename,get(filename)))$Forecast.Time,
format="%d.%m.%Y %H:%M+%S",tz="UTC")
}
weather\u data\u files所以,问题是您传入的是字符串,而不是对象。get
函数检索对象,只是没有存储它的位置
在循环时,始终可以将字符串加载到临时变量中。对临时变量进行操作,完成后进行赋值
for(filename in c("a","b")){
tmp <- get(filename)
}
现在您有了一个可以处理的文件列表。如果需要,您可以将它们分配给全局变量。因此,问题是您传递的是字符串,而不是对象。get
函数检索对象,只是没有存储它的位置
在循环时,始终可以将字符串加载到临时变量中。对临时变量进行操作,完成后进行赋值
for(filename in c("a","b")){
tmp <- get(filename)
}
现在您有了一个可以处理的文件列表。如果需要,您可以将它们分配给全局变量。get(filename)[,colname]
有什么问题吗?您可以给出一个数据文件的示例,例如,CMC.csv
?get(filename)[,colname]有什么问题吗?您可以给出一个数据文件的示例,例如,CMC.csv
?