库(tidyverse)中 separate() 命令的 sep 参数问题

Problems with the sep argument to the separate() command in library(tidyverse)

我是(非常!)使用 R 的新手,并且面临一个可能(非常!)容易解决的问题。我正在寻求分隔一列字符,并且 - 虽然它是在没有指定分隔字符的情况下为我自动完成的 - 我希望能够指定字符以避免歧义。

这是一个例子:

economists <- tibble(name = c("Adam.Smith", "Paul.Samuelson", "Milton.Friedman"))
economists %>%
  separate(name, c("first_name", "last_name"), sep=".")

这会产生这个:

# A tibble: 3 x 2
  first_name last_name
  <chr>      <chr>    
1 ""         ""       
2 ""         ""       
3 ""         ""       
Warning message:
Expected 2 pieces. Additional pieces discarded in 3 rows [1, 2, 3]. 

我更喜欢它生成这个:

# A tibble: 3 x 2
  first_name last_name
  <chr>      <chr>    
1 Adam       Smith    
2 Paul       Samuelson
3 Milton     Friedman 

当我没有指定列用句点分隔时,它会做什么。

我错过了什么?

试试这个:

economists <- tibble(name = c("Adam.Smith", "Paul.Samuelson", "Milton.Friedman"))
economists %>%
    separate(name, c("first_name", "last_name"), sep="\.")

# A tibble: 3 x 2
  first_name last_name
  <chr>      <chr>    
1 Adam       Smith    
2 Paul       Samuelson
3 Milton     Friedman