使用多个分隔符将一列拆分为两列时,将额外内容合并到左侧
Merge extra contents to the left when splitting one column to two with multiple delimiters
我有一个 data.frame 列,我想分成两列,由 space 字符分隔。如果有多个分隔符,我仍然只想要两列,将额外的内容合并到第一个结果列。所以这个:
dat <- data.frame(full_name = c("first1 last1", "first2 middle2 last2"))
full_name
1 first1 last1
2 first2 middle2 last2
应该变成:
first_name last_name
1 first1 last1
2 first2 middle2 last2
我正在使用 tidyr 包中的 separate()
,它通过像这样向右合并来处理额外的定界符:
library(tidyr)
dat %>%
separate(full_name, c("first_name", "last_name"), " ", extra = "merge")
first_name last_name
1 first1 last1
2 first2 middle2 last2
我想用 tidyr 函数可以完成吗?如果不能,我还能如何仅在最后一个分隔符处拆分列?
dat %>%
separate(full_name, c("first_name", "last_name"), " (?=[^ ]+$)", extra = "merge")
first_name last_name
1 first1 last1
2 first2 middle2 last2
我有一个 data.frame 列,我想分成两列,由 space 字符分隔。如果有多个分隔符,我仍然只想要两列,将额外的内容合并到第一个结果列。所以这个:
dat <- data.frame(full_name = c("first1 last1", "first2 middle2 last2"))
full_name
1 first1 last1
2 first2 middle2 last2
应该变成:
first_name last_name
1 first1 last1
2 first2 middle2 last2
我正在使用 tidyr 包中的 separate()
,它通过像这样向右合并来处理额外的定界符:
library(tidyr)
dat %>%
separate(full_name, c("first_name", "last_name"), " ", extra = "merge")
first_name last_name
1 first1 last1
2 first2 middle2 last2
我想用 tidyr 函数可以完成吗?如果不能,我还能如何仅在最后一个分隔符处拆分列?
dat %>%
separate(full_name, c("first_name", "last_name"), " (?=[^ ]+$)", extra = "merge")
first_name last_name
1 first1 last1
2 first2 middle2 last2