如何根据另一列的条件语句将因子列添加到数据框?

iou*_*ich 25 r dataframe

我有一个数据帧,我需要根据条件语句添加一个因子列.这是数据.

码:

    morstats.agri.f <- moroccostats[c("year","agVA_g","agVA_ppp_g")]
    morstats.agri.f
Run Code Online (Sandbox Code Playgroud)

题:

那么,我想在数据框中添加一个"periodframe"列,它有两个条目:"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
Run Code Online (Sandbox Code Playgroud)

等等

小智 46

你可以像这样使用ifelse

dataframe$periodframe <- ifelse(dataframe$year > 1991,"post-1991", "pre-1991")
Run Code Online (Sandbox Code Playgroud)

  • @ smailov83然后你必须转换为数字`ifelse(as.numeric(as.character(df $ year)),...`. (4认同)