根据条件选择数据帧而不进行循环

时间:2017-10-02 05:50:05

标签: r dataframe

我有3个数据框df1df2df3

根据年份情况,我想选择其中一个

我目前的方法是使用for循环。我可以做得更好吗?

  if(year == "2008"){
    df <- df1
  } else if (year == "2009"){
    df <- df2
  } else{
    df <- df3
  }

2 个答案:

答案 0 :(得分:2)

我会把它们放在一个列表中。类似的东西:

lst <- list('2008'= df1, '2009' = df2, '2010' = df3)

然后基于year我会将其子集化。基本上现在只用一行替换整个代码。

lst[year]

答案 1 :(得分:0)

Ifelse方法:

df = ifelse(year == 2008, df1, ifelse(year == 2009, df2, df3))