当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。