【问题标题】:How to add a factor column to dataframe based on a conditional statement from another column?如何根据另一列的条件语句将因子列添加到数据框中?
【发布时间】:2013-05-10 08:02:28
【问题描述】:

我有一个数据框,我需要根据条件语句为其添加一个因子列。这是data

代码:

    morstats.agri.f <- moroccostats[c("year","agVA_g","agVA_ppp_g")]
    morstats.agri.f

问题:

所以,我想根据“年”列的条件向具有两个条目的数据框添加“周期帧”列:“1991 年之前”和“1991 年之后”?

数据框如下所示:

    year agVA_g   agVA_ppp_g
 1  1960   0.00  0.000000000
 2  1961   0.00  0.000000000
 3  1962   0.00  0.000000000
 4  1963   0.00  0.000000000
 5  1964   0.00  0.000000000
 6  1965  -0.13 -0.160505952
 7  1966   0.09  0.065780672
 8  1967   0.10  0.075941092
 9  1968  -0.04 -0.064963044
 10 1969   0.11  0.084530984
 11 1970   0.19  0.161963328
 12 1971   0.12  0.097397145
 13 1972   0.19  0.160263118
 14 1973   0.20  0.172040051
 15 1974   0.01 -0.012005158
 16 1975   0.14  0.111609284
 17 1976  -0.02 -0.044823054
 18 1977   0.32  0.299092259
 19 1978   0.13  0.104535675
 20 1979   0.20  0.171374920

等等

【问题讨论】:

  • 我认为您的第一行中缺少逗号:moroccostats[,c(...?

标签: r dataframe


【解决方案1】:

你可以像这样使用 ifelse

dataframe$periodframe <- ifelse(dataframe$year > 1991,"post-1991", "pre-1991")

【讨论】:

  • 这不是假设年份被声明为数字变量吗?我这么说是因为在数据框“moroccostats”中,前两列被声明为因子,其余列被声明为数字。
  • @smailov83 然后你必须转换成数字ifelse(as.numeric(as.character(df$year)),...
  • 我不知道它假设了什么,但是当数据被如上所述读取时它可以工作。 :)
猜你喜欢
  • 2016-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多