我有一个ID变量,我试图根据其前缀为1或2将其分为两列。
我的数据示例是:
STR_ID
1434233
2343535
1243435
1434355
我尝试了无数种方法来尝试根据它们的前缀将这些变量分为几列,但是似乎无法弄清楚。关于如何执行此操作的任何想法?预先谢谢你。
答案 0 :(得分:2)
我们通过提取“ STR_ID”的第一个字符/数字并将其substr
提取为“宽”格式,用spread
创建分组变量
library(tidyverse)
df1 %>%
group_by(grp = paste0('grp', substr(STR_ID, 1, 1))) %>%
mutate(i = row_number()) %>%
spread(grp, STR_ID) %>%
select(-i)
# A tibble: 3 x 2
# grp1 grp2
# <int> <int>
#1 1434233 2343535
#2 1243435 NA
#3 1434355 NA
df1 <- structure(list(STR_ID = c(1434233L, 2343535L, 1243435L, 1434355L
)), class = "data.frame", row.names = c(NA, -4L))