extract()
已被 separate_wider_regex()
取代,因为它具有更完善的 API 和更好的问题处理能力。被取代的函数不会消失,但只会收到关键的错误修复。
给定带有捕获组的正则表达式,extract()
将每个组转换为一个新列。如果组不匹配,或者输入为 NA,则输出将为 NA。
参数
- data
-
一个 DataFrame 。
- col
-
<
tidy-select
> 要展开的列。 - into
-
要创建为字符向量的新变量的名称。使用
NA
省略输出中的变量。 - regex
-
表示用于提取所需值的正则表达式的字符串。
into
的每个元素都应该有一个组(由()
定义)。 - remove
-
如果
TRUE
,从输出数据帧中删除输入列。 - convert
-
如果
TRUE
,将在新列上运行type.convert()
和as.is = TRUE
。如果组件列是整数、数字或逻辑,这非常有用。注意:这将导致字符串
"NA"
转换为NA
。 - ...
-
传递给方法的附加参数。
也可以看看
separate()
由分隔符分隔。
例子
df <- tibble(x = c(NA, "a-b", "a-d", "b-c", "d-e"))
df %>% extract(x, "A")
#> # A tibble: 5 × 1
#> A
#> <chr>
#> 1 NA
#> 2 a
#> 3 a
#> 4 b
#> 5 d
df %>% extract(x, c("A", "B"), "([[:alnum:]]+)-([[:alnum:]]+)")
#> # A tibble: 5 × 2
#> A B
#> <chr> <chr>
#> 1 NA NA
#> 2 a b
#> 3 a d
#> 4 b c
#> 5 d e
# Now recommended
df %>%
separate_wider_regex(
x,
patterns = c(A = "[[:alnum:]]+", "-", B = "[[:alnum:]]+")
)
#> # A tibble: 5 × 2
#> A B
#> <chr> <chr>
#> 1 NA NA
#> 2 a b
#> 3 a d
#> 4 b c
#> 5 d e
# If no match, NA:
df %>% extract(x, c("A", "B"), "([a-d]+)-([a-d]+)")
#> # A tibble: 5 × 2
#> A B
#> <chr> <chr>
#> 1 NA NA
#> 2 a b
#> 3 a d
#> 4 b c
#> 5 NA NA
相关用法
- R tidyr expand 扩展 DataFrame 以包含所有可能的值组合
- R tidyr expand_grid 从所有输入组合创建一个 tibble
- R tidyr separate_rows 将折叠的列分成多行
- R tidyr chop 砍伐和砍伐
- R tidyr pivot_longer_spec 使用规范将数据从宽转为长
- R tidyr unnest_longer 将列表列取消嵌套到行中
- R tidyr uncount “计数” DataFrame
- R tidyr cms_patient_experience 来自医疗保险和医疗补助服务中心的数据
- R tidyr pivot_wider_spec 使用规范将数据从长轴转向宽轴
- R tidyr replace_na 将 NA 替换为指定值
- R tidyr unnest_wider 将列表列取消嵌套到列中
- R tidyr full_seq 在向量中创建完整的值序列
- R tidyr nest 将行嵌套到 DataFrame 的列表列中
- R tidyr separate 使用正则表达式或数字位置将字符列分成多列
- R tidyr pivot_wider 将数据从长轴转向宽轴
- R tidyr nest_legacy Nest() 和 unnest() 的旧版本
- R tidyr separate_longer_delim 将字符串拆分为行
- R tidyr gather 将列收集到键值对中
- R tidyr hoist 将值提升到列表列之外
- R tidyr pivot_longer 将数据从宽转为长
- R tidyr pack 打包和拆包
- R tidyr separate_wider_delim 将字符串拆分为列
- R tidyr drop_na 删除包含缺失值的行
- R tidyr fill 用上一个或下一个值填充缺失值
- R tidyr tidyr_legacy 旧名称修复
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Extract a character column into multiple columns using regular expression groups。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。