首页 > 解决方案 > 将一列分类变量添加到数据框中

问题描述

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

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

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

我收到以下错误。

条件的长度 > 1 并且只使用第一个元素错误:“if else”中的意外'else'

标签: rdataframe

解决方案


您可以通过以下方式轻松完成case_when

library(tidyverse)

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

推荐阅读