r语言 - 根据字符串的部分分割向量



有一个vector容器,其中每个元素都是由以下模板构建的字符串:

something*something.

我想做的是构建一个表,在每一行中,一列将包含*左侧的子字符串,另一列将包含*右侧的子字符串。

我们可以通过多种方式做到这一点。使用base R的一个选项是read.table

 read.table(text=v1, sep="*", header=FALSE, stringsAsFactors=FALSE)
 #       V1        V2
 #1 something something
 #2        sp        vs

或者我们可以通过*rbind分割列表元素

 setNames(do.call(rbind.data.frame, strsplit(v1, '[*]')), paste0('V',1:2))

或者我们可以用tidyr中的separate

library(dplyr)
library(tidyr)
as.data.frame(v1) %>% 
            separate(v1, into=c('v1', 'v2'))

数据
v1 <- c('something*something', 'sp*vs')

最新更新