这也可以帮助你:
library(dplyr)
library(stringr)
df %>%
mutate(ext = str_extract(bracketedList, "(?<=\\[).*?(?=,)"))
id bracketedList ext
1 1 [235.223,636.11115,7453.773] 235.223
2 2 [2355.66377,6362.1645,7633.7473] 2355.66377
或者在基础 R 中:
gsub("^\\[(?<=\\[)(.*?)(?=,).*", "\\1", df$bracketedList, perl = TRUE)
[1] "235.223" "2355.66377"
如果您想提取所有数字:
library(tidyr)
df %>%
mutate(ext = str_extract_all(bracketedList, "[^,\\[\\]]+")) %>%
unnest_wider(ext) %>%
rename_with(~ gsub("\\.\\.\\.(\\d)", "\\1", .), contains("."))
# A tibble: 2 x 5
id bracketedList `1` `2` `3`
<dbl> <chr> <chr> <chr> <chr>
1 1 [235.223,636.11115,7453.773] 235.223 636.11115 7453.773
2 2 [2355.66377,6362.1645,7633.7473] 2355.66377 6362.1645 7633.7473