【发布时间】:2020-12-10 12:58:12
【问题描述】:
我在一列的每一行都有这些字符串。
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]+")
我想使用extract() 函数,而不是使用separate() 函数。我的理解是,它与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]+)")
我做错了什么?
【问题讨论】: