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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。