使用一个字符串处理大型数据帧,该字符串是元素列表(如chr).我想分离字符串,这样每个元素都有自己的键值列.我try 了"tidyr::separate"和"tidyverse::unnest\u widder()",但没有一个返回我想要的输出.
这是一个虚拟数据:
df1 <- tibble(
id = c('000914', '000916'),
code = c('NN', 'SS'),
values2 = c("{DS=15}{FPLUC=0}{N=CELL}{R=NINT1}{S=true}{SPLUC=1}" , "{DS=0}{FPLUC=0}{N=CELL}{R=NINT1}{S=true}{SPLUC=1}"
) )
# A tibble: 2 x 3
id code values2
<chr> <chr> <chr>
1 000914 NN {DS=15}{FPLUC=0}{N=CELL}{R=NINT1}{S=true}{SPLUC=1}
2 000916 SS {DS=0}{FPLUC=0}{N=CELL}{R=NINT1}{S=true}{SPLUC=1}
我try 了分离,这是没有错,但它不完全是我想要的,它需要几个pivot\u更长和pivot\u更广泛的reshape .有更好更快的 Select 吗?
df1 %>%
separate(values2, into = paste("Col", 1:14))
# A tibble: 2 x 16
id code `Col 1` `Col 2` `Col 3` `Col 4` `Col 5` `Col 6` `Col 7` `Col 8` `Col 9`
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 000914 NN "" DS 15 FPLUC 0 N CELL R NINT1
2 000916 SS "" DS 0 FPLUC 0 N CELL R NINT1
# ... with 5 more variables: Col 10 <chr>, Col 11 <chr>, Col 12 <chr>, Col 13 <chr>,
# Col 14 <chr>
这是我想要的输出:
id code DS FPLUC N R S SPLUC
1 000914 NN 15 0 CELL NINT1 true 1
2 000916 SS 0 0 CELL NINT1 true 1