我的数据如下:“路易·汉密尔顿”、“老虎狼”、“萨钦·坦杜卡尔”、“勒布朗·詹姆斯”、“迈克尔·休梅克”、“好莱坞--演员生涯”
我想要的输出是“路易”、“老虎”、“萨钦”、“勒布朗”、“迈克尔”、“好莱坞”
我试过使用下面的函数,但没有起作用
Sportstars<-function(charvec)
{min.length < 10, (x, hyph.pattern = Null)}有人能帮忙吗?
发布于 2019-03-21 04:23:12
我们可以使用sub
sub("^([^- ]+).*", "\\1", v1)
#[1] "Louis" "Tiger" "Sachin" "Lebron" "Michael" "Hollywood"或另一个具有长度条件的版本。
grep("^.{1,10}$", sub("\\s+.*", "", v1), value = TRUE)
#[1] "Louis" "Tiger" "Sachin" "Lebron" "Michael" "Hollywood"或者是来自word的stringr
library(stringr)
word(v1, 1)
#[1] "Louis" "Tiger" "Sachin" "Lebron" "Michael" "Hollywood"另外,如果我们也需要实现最后一个条件
sapply(strsplit(v1, "[– -]"), function(x) {
x1 <- setdiff(x, "")
x1[1][nchar(x1[1]) < 10]})
#[1] "Louis" "Tiger" "Sachin" "Lebron" "Michael" "Hollywood"数据
v1 <- c( "Louis Hamilton", "Tiger Wolf", "Sachin Tendulkar",
"Lebron James", "Michael Shoemaker", "Hollywood – Career as an Actor")https://stackoverflow.com/questions/55273751
复制相似问题