x<-c("123-12","12-24","6-4")
如何在破折号插入新向量之前提取每个字符串的部分?在这个例子中,我的结果应该等同于
c("123","12","6")
我怎么做同样的事情,除了在冲刺后提取所有的东西?也就是说。
c("12","24","4")
对于我的问题,你可以假设x的每个元素都只有一个破折号。
发布于 2013-11-11 22:24:43
要在破折号之前提取字符串,请用空字符串替换破折号和后面的所有内容。
sub('-.*', '', x)
要在破折号后提取字符串,请执行相反的操作。
sub('.*-', '', x)
发布于 2013-11-11 22:35:08
这是另一种方式,通过将值转换为数字类型的附加好处:
d <- read.table(text=x, sep='-')
# V1 V2
# 1 123 12
# 2 12 24
# 3 6 4
然后我们有:
d[,1]
# [1] 123 12 6
d[,2]
# [1] 12 24 4
发布于 2013-11-11 22:21:12
您可以使用strsplit
和lapply
的组合
破折号前:
b <- unlist(lapply(strsplit(x, "-"), function(x) x[1]))
> b
[1] "123" "12" "6"
破折号后:
a <- unlist(lapply(strsplit(x, "-"), function(x) x[2]))
> a
"12" "24" "4"
https://stackoverflow.com/questions/19917091
复制相似问题