R 提取字符串的一部分(对于字符串向量)
除了在破折号后提取所有内容外,我如何做相同的事情?即R 提取字符串的一部分(对于字符串向量),r,R,除了在破折号后提取所有内容外,我如何做相同的事情?即 c("123","12","6") 对于我的问题,您可以假设x的每个元素都有一个且只有一个破折号。您可以使用strsplit和lappy的组合: 冲刺前: c("12","24","4") b [1] "123" "12" "6" 短跑后: b <- unlist(lapply(strsplit(x, "-"), function(x) x[1])) > b [1] "123" "12" "6" a "12" "2
c("123","12","6")
对于我的问题,您可以假设x的每个元素都有一个且只有一个破折号。您可以使用
strsplit
和lappy
的组合:
冲刺前:
c("12","24","4")
b
[1] "123" "12" "6"
短跑后:
b <- unlist(lapply(strsplit(x, "-"), function(x) x[1]))
> b
[1] "123" "12" "6"
a
"12" "24" "4"
您可以结合使用strsplit
和lappy
:
冲刺前:
c("12","24","4")
b
[1] "123" "12" "6"
短跑后:
b <- unlist(lapply(strsplit(x, "-"), function(x) x[1]))
> b
[1] "123" "12" "6"
a
"12" "24" "4"
要提取破折号前的字符串,请将破折号和破折号后的所有内容替换为空字符串
a <- unlist(lapply(strsplit(x, "-"), function(x) x[2]))
> a
"12" "24" "4"
要提取破折号后的字符串,请执行相反的操作
sub('-.*', '', x)
要提取破折号之前的字符串,请将破折号和破折号之后的所有内容替换为空字符串
a <- unlist(lapply(strsplit(x, "-"), function(x) x[2]))
> a
"12" "24" "4"
要提取破折号后的字符串,请执行相反的操作
sub('-.*', '', x)
试试这个:
sub('.*-', '', x)
试试这个:
sub('.*-', '', x)
这是另一种方法,附加的好处是将值转换为数字类型:
substr(x,1,as.vector(regexpr("-",x))-1)
这是另一种方法,附加的好处是将值转换为数字类型:
substr(x,1,as.vector(regexpr("-",x))-1)