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