> dd <- tibble("Temper: 36.6? Pulse:76 bpm RR: 16bpm BP?148/58 mmHg")
> dd
# A tibble: 1 x 1
`"Temper: 36.6? Pulse:76 bpm RR: 16bpm BP?148/58 mmHg"`
<chr>
1 Temper: 36.6? Pulse:76 bpm RR: 16bpm BP?148/58 mmHg
> ddtarget <- tibble(Temper=36.6,Pulse=76,RR=16,SBP=148,DBP=58)
> ddtarget
# A tibble: 1 x 5
Temper Pulse RR SBP DBP
<dbl> <dbl> <dbl> <dbl> <dbl>
1 36.6 76 16 148 58
Run Code Online (Sandbox Code Playgroud)
我有一个dd并且想要一个ddtarget;如何使用地图或其他 tidyverse 函数来制作它?
我们可以rename先列(因为它的名字很奇怪),在单独的行中获取数据,以空格分割,然后是大写字母,在不同的列中以冒号分割数据,最后使用pivot_wider.
library(dplyr)
library(tidyr)
dd %>%
rename(col = `"Temper: 36.6? Pulse:76 bpm RR: 16bpm BP?148/58 mmHg"`) %>%
separate_rows(col, sep = "\\s+(?=[A-Z])") %>%
separate(col, into = c('name', 'value'), sep = ':|?') %>%
pivot_wider()
# A tibble: 1 x 4
# Temper Pulse RR BP
# <chr> <chr> <chr> <chr>
#1 " 36.6?" 76 bpm " 16bpm" 148/58 mmHg
Run Code Online (Sandbox Code Playgroud)