向数据框添加一列分类变量

时间:2019-08-10 17:47:18

标签: r dataframe

我有一个包含经济数据的数据框,按年份(1991-2016)逐行分隔。我试图在数据框中添加一列类别变量“组”,将第1组的1991-1999年,第2组的2000-2009年和第3组的2010-2016年分组。

我尝试用if / else语句添加该列。

wdi$groups <- 
  if(wdi$year > 1990 & wdi$year <2000) {
    1
  }
  if else(wdi$year > 2000 & wdi$year < 2010) {
    2
  }
  else {
    3
  }

我收到以下错误消息。

条件的长度> 1,并且仅使用第一个元素错误:“如果不是”中出现意外的'else'

1 个答案:

答案 0 :(得分:0)

您可以使用case_when轻松做到这一点:

library(tidyverse)

df%>%
mutate(group = case_when(year %in% 1991:1999 ~ 1,
                         year %in% 2000:2009 ~ 2,
                         year %in% 2010:2016 ~ 3))