我在一列的每一行中都有这些字符串。
example_df <- tibble(string = c("[{\"positieVergelekenMetSchooladvies\":\"boven niveau\",\"percentage\":9.090909090909092,\"percentageVergelijking\":19.843418733556412,\"volgorde\":10},{\"positieVergelekenMetSchooladvies\":\"op niveau\",\"percentage\":81.81818181818181,\"percentageVergelijking\":78.58821425834631,\"volgorde\":20},{\"positieVergelekenMetSchooladvies\":\"onder niveau\",\"percentage\":9.090909090909092,\"percentageVergelijking\":1.5683670080972694,\"volgorde\":30}]"))
我只对数字感兴趣。此正则表达式有效:
example_df %>%
.$string %>%
str_extract_all(., "[0-9]+\\.[0-9]+")
separate()
我想使用该extract()
功能,而不是使用该功能。我的理解是,它不同于separate()
在extract()
您要使用填充您的新列您正则表达式匹配。separate()
当然匹配分隔字符串。但是在separate()
匹配所有字符串的地方,您sep=
extract()
只能在匹配的一组字符串中填写。
example_df %>%
extract(string,
into = c("boven_niveau_school",
"boven_niveau_verg",
"op_niveau_school",
"op_niveau_verg",
"onder_niveau_school",
"onder_niveau_verg"),
regex = "([0-9]+\\.[0-9]+)")
我究竟做错了什么?
取而代之的是separate
,extract
我将从字符串中提取所有数字,然后用于unnest_wider
创建新列。
library(tidyverse)
example_df %>%
mutate(temp = str_extract_all(string, "[0-9]+\\.[0-9]+")) %>%
unnest_wider(temp)
您可以根据自己的选择重命名列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句