在R中,将一列拆分为两列
我正在尝试根据百分比将数据框划分为两列在R中,将一列拆分为两列,r,R,我正在尝试根据百分比将数据框划分为两列 group percentage 0 hired 60% 0 hired next_month 65% 0 or 1 hired 68% 0 or 1 hired next_month 70% 1 hired 79% 1 or 2 employee
group percentage
0 hired 60%
0 hired next_month 65%
0 or 1 hired 68%
0 or 1 hired next_month 70%
1 hired 79%
1 or 2 employee 80%
2 retired 85%
2 or 3 fired 92%
3 not-retired 96%
我想要2列组,决策输出应该是列百分比,决策应该是,因为它是不变的,如果百分比在第3行60%到69%之间,列组应该是0,如果百分比在第4行70%到79%之间,组应该是1,如果百分比在80%到89%之间,组应该是2,如果百分比在90%到99%之间,则组应为3
group decision percentage
0 hired 60%
0 hired next_month 65%
0 hired 68%
1 hired next_month 70%
1 hired 79%
2 employee 80%
2 retired 85%
3 fired 92%
3 not-retired 96%
我的代码:
df1 <- structure(list(
group = c("0 hired", "0 hired next_month ", "0 or 1 hired",
"0 or 1 hired next_month", "1 hired", "1 or 2 employee",
"2 retired", "2 or 3 fired", "3 not-retired"),
percentage = c("60%", "65%", "68%", "70%", "79%", "80%", "89%", "90%", "96%") ),
.Names = c("group", "percentage"), class = "data.frame", row.names = c(NA, -9L))
df2 <- df1 %>% extract(group, into = c('group', 'decision'), "^(\\d+).*(hired|hired next_month|employee|retired|fired|not-retired)")%>% mutate(group = replace(group, parse_number(percentage)>=100, 3))
有人能帮忙吗。提前感谢您可以像这样在base R中执行此操作
df2 = data.frame(percentage = df1$percentage)
df2$decision = sub(".*\\d\\s*", "", df1$group)
df2$group = as.numeric(cut(as.numeric(sub("%", "", df1$percentage)),
breaks = c(59, 69, 79,89,100))) - 1
df2 = df2[,3:1]
df2
group decision percentage
1 0 hired 60%
2 0 hired next_month 65%
3 0 hired 68%
4 1 hired next_month 70%
5 1 hired 79%
6 2 employee 80%
7 2 retired 89%
8 3 fired 90%
9 3 not-retired 96%
这应该在堆栈溢出时发布,但请检查dplyr::separate