变量对象名称的$operator

变量对象名称的$operator,r,R,我正在尝试使用$运算符在可变创建的data.frame对象上的for循环中选择和重新格式化特定列。我在我的注释代码中尝试了4种不同的解决方案,但都不起作用。我找遍了所有地方,但似乎没有找到另一种解决办法。 如何使用$运算符选择具有变量data.frame名称的特定列 谢谢 weather_data_files<-c("CMC","ECMWF","ECMWF_VAR_EPS_MONTHLY_FORECAST", "GFS","ICON_EU

我正在尝试使用$运算符在可变创建的data.frame对象上的for循环中选择和重新格式化特定列。我在我的注释代码中尝试了4种不同的解决方案,但都不起作用。我找遍了所有地方,但似乎没有找到另一种解决办法。 如何使用$运算符选择具有变量data.frame名称的特定列

谢谢

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