R-dplyr中字符串的列

R-dplyr中字符串的列,r,string,dplyr,mutate,R,String,Dplyr,Mutate,我的数据框看起来像这样 x <- data.frame( id = c("123_1", "987_123") ) x1)整齐划一 library(dplyr) library(tidyr) x %>% separate(id, c("af", "ad"), remove = FALSE) ## id af ad ## 1 123_1 123 1 ## 2

我的数据框看起来像这样

x <-
  data.frame(
    id = c("123_1", "987_123")
  )
x1)整齐划一

library(dplyr)
library(tidyr)

x %>%
  separate(id, c("af", "ad"), remove = FALSE)
##        id  af  ad
## 1   123_1 123   1
## 2 987_123 987 123
2)基本R

2a)读取.表格不带任何软件包使用
read.表格

cbind(x, read.table(text = x$id, sep = "_", col.names = c("af", "ad"),
  colClasses = "character"))
##        id  af  ad
## 1   123_1 123   1
## 2 987_123 987 123
2b)sub或使用
sub

transform(x, af = sub("_.*", "", id), ad = sub(".*_", "", id))
##        id  af  ad
## 1   123_1 123   1
## 2 987_123 987 123

一个选项:
x[,c(“af”,“ad”)]或使用
tidyr separate(x,id,into=c(“af”,“ad”),remove=FALSE)
。更长,但也有
strcapture
cbind(x,strcapture((.*)。(.*),x$id,data.frame(af=character(),ad=character())
transform(x, af = sub("_.*", "", id), ad = sub(".*_", "", id))
##        id  af  ad
## 1   123_1 123   1
## 2 987_123 987 123