Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于另一个带年的列创建带期间的新列_R_Dplyr_Case When - Fatal编程技术网

R 基于另一个带年的列创建带期间的新列

R 基于另一个带年的列创建带期间的新列,r,dplyr,case-when,R,Dplyr,Case When,我正在尝试基于另一列在data.frame中创建新列 我的数据框名为dat.cp2,其中一列的年份为1990-2017年 在这里,您可以看到我的数据的外观。“应收账款”一栏注明一年 我需要制作一个名为“TB”的新专栏,其中有句点。e、 第一阶段是1990-1996年,我希望这一阶段被称为“TB1”。。1997-2003年是“TB2”等。因此,对于1995年出生的人,新的专栏称为“TB1” 我试过: dat.cp2 %>% mutate(TB =

我正在尝试基于另一列在data.frame中创建新列

我的数据框名为dat.cp2,其中一列的年份为1990-2017年 在这里,您可以看到我的数据的外观。“应收账款”一栏注明一年

我需要制作一个名为“TB”的新专栏,其中有句点。e、 第一阶段是1990-1996年,我希望这一阶段被称为“TB1”。。1997-2003年是“TB2”等。因此,对于1995年出生的人,新的专栏称为“TB1”

我试过:

dat.cp2 %>% mutate(TB =
                     case_when(ar <=1996 ~ "TB1",
                               ar >=1997&<=2003 ~ "TB2",
                               ar >=2004&<=2010 ~ "TB3",
                               ar >=2011 ~ "TB4")
dat.cp2%>%突变(TB=
案例(ar=1997&=2004&=2011~“TB4”)
但我收到了错误信息:

Error: unexpected '<=' in:
"                     case_when(ar <=1996 ~ "TB1",
                               ar >=1997&<="
错误:意外的“语法
&%
变异(TB)=
案例(ar=1997&ar=2004&ar=2011~“TB4”))
注意:简化的方法有很多。但是,这只是为了说明OP的代码错误在哪里 变异(TB)= 案例(ar=1997&ar=2004&ar=2011~“TB4”))
注意:简化的方法有很多。但是,这只是为了说明OP的代码错误在哪里。您也可以这样做:

dat.cp2 %>%
   mutate(TB = cut(ar, breaks = c(1989,1996, 2003, 2010, 2017),
                       labels = c("TB1", "TB2","TB3","TB4")))
你也可以这样做:

dat.cp2 %>%
   mutate(TB = cut(ar, breaks = c(1989,1996, 2003, 2010, 2017),
                       labels = c("TB1", "TB2","TB3","TB4")))

您实际上不需要
&
,因为您是按顺序工作的,而且您还可以使用
TRUE
完成:

dat.cp2 %>% 
  mutate(
    TB = case_when(ar <= 1996 ~ 'TB1',
                   ar <= 2003 ~ 'TB2',
                   ar <= 2010 ~ 'TB3',
                   TRUE ~ 'TB4')
  )
dat.cp2%>%
变异(

TB=case_when(ar您实际上不需要
&
,因为您是按顺序工作的,而且您还可以使用
TRUE
完成:

dat.cp2 %>% 
  mutate(
    TB = case_when(ar <= 1996 ~ 'TB1',
                   ar <= 2003 ~ 'TB2',
                   ar <= 2010 ~ 'TB3',
                   TRUE ~ 'TB4')
  )
dat.cp2%>%
变异(

TB=case_when(ar)请通过将数据输入
dput()
并发布输出来提供数据样本。语法
&=1997&ar请通过将数据输入
dput()
并发布输出来提供数据样本。语法
&=1997&ar