當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R tidyr separate_longer_delim 將字符串拆分為行


[Experimental]

這些函數中的每一個都接受一個字符串並將其分成多行:

  • separate_longer_delim() 由分隔符分隔。

  • separate_longer_position() 按固定寬度分割。

用法

separate_longer_delim(data, cols, delim, ...)

separate_longer_position(data, cols, width, ..., keep_empty = FALSE)

參數

data

一個 DataFrame 。

cols

< tidy-select > 要分隔的列。

delim

對於 separate_longer_delim() ,給出值之間的分隔符的字符串。默認情況下,它被解釋為固定字符串;使用stringr::regex()和朋友以其他方式進行拆分。

...

這些點用於將來的擴展,並且必須為空。

width

對於 separate_longer_position() ,一個整數,給出要分割的字符數。

keep_empty

默認情況下,您將為每個觀察獲得 ceiling(nchar(x) / width) 行。如果 nchar(x) 為零,則意味著整個輸入行將從輸出中刪除。如果要保留所有行,請使用 keep_empty = TRUE 將 size-0 元素替換為缺失值。

基於data的數據幀。它具有相同的列,但不同的行。

例子

df <- tibble(id = 1:4, x = c("x", "x y", "x y z", NA))
df %>% separate_longer_delim(x, delim = " ")
#> # A tibble: 7 × 2
#>      id x    
#>   <int> <chr>
#> 1     1 x    
#> 2     2 x    
#> 3     2 y    
#> 4     3 x    
#> 5     3 y    
#> 6     3 z    
#> 7     4 NA   

# You can separate multiple columns at once if they have the same structure
df <- tibble(id = 1:3, x = c("x", "x y", "x y z"), y = c("a", "a b", "a b c"))
df %>% separate_longer_delim(c(x, y), delim = " ")
#> # A tibble: 6 × 3
#>      id x     y    
#>   <int> <chr> <chr>
#> 1     1 x     a    
#> 2     2 x     a    
#> 3     2 y     b    
#> 4     3 x     a    
#> 5     3 y     b    
#> 6     3 z     c    

# Or instead split by a fixed length
df <- tibble(id = 1:3, x = c("ab", "def", ""))
df %>% separate_longer_position(x, 1)
#> # A tibble: 5 × 2
#>      id x    
#>   <int> <chr>
#> 1     1 a    
#> 2     1 b    
#> 3     2 d    
#> 4     2 e    
#> 5     2 f    
df %>% separate_longer_position(x, 2)
#> # A tibble: 3 × 2
#>      id x    
#>   <int> <chr>
#> 1     1 ab   
#> 2     2 de   
#> 3     2 f    
df %>% separate_longer_position(x, 2, keep_empty = TRUE)
#> # A tibble: 4 × 2
#>      id x    
#>   <int> <chr>
#> 1     1 ab   
#> 2     2 de   
#> 3     2 f    
#> 4     3 NA   

相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Split a string into rows。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。