如何一次过滤各种变量的第一列?

时间:2019-05-07 16:00:34

标签: r dataframe for-loop

我有n个数据框,每个数据框对应于一个城市的数据。

每个数据帧有3个变量,它们都有对应的名称(yyyy,tmax,tmin)。

我想用“ yyyy”过滤它们。

我首先创建一个带有所有数据帧名称(chr)的向量,以便在for循环中使用。


cities <- as.vector(objects()) 


然后我做了一些平庸的循环尝试


for(i in cities[,1]) {

  assign( i, (filter[i])>=2000 )

}




for ( i in cities) { 

  assign(i, as.data.frame(apply(get(i)[ ,1], function(x) Filter(x >= 2000)))) 

}



for (i in cities) {

i %<>% Filter(i$yyyy >= 2000)

}


它们都不起作用。

P.S .:与“如何连接(合并)数据框(内部,外部,左侧,右侧)”完全不同!

我不想合并任何东西。我想将所有n个数据帧分开,但只包含yyyy = 2000

1 个答案:

答案 0 :(得分:0)

这应该有效

for (i in cities) {
  df <- get(i)
  assign(i, df[df$yyyy >= 2000, ], envir = .GlobalEnv)
}