有一个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')