我这里有一小串字符串:
> dput(test)
list(c("jason", "s", "jasonnnnnnnnn"))
我想摆脱某些短片(少于3个字符)和 长(超过6个字符)的单词。我试过这段代码无济于事。
test[[ii]] <-
lapply(test[[ii]], function(x) x[-(nchar(x < 5 | x > 10))])
答案 0 :(得分:4)
x <- list(c("jason", "s", "jasonnnnnnnnn"))
lapply(x, function(x) x[nchar(x) %in% 3:6])
[[1]]
[1] "jason"
重要的是格雷戈尔已经指出了用整数进行子集化(你可以使用-
)和逻辑的区别。
答案 1 :(得分:2)
如果我们使用|
运算符,则否定(!
)并对3:6内的单词进行子集
lapply(test, function(x) x[!(nchar(x) < 3 | nchar(x) > 6)])
#[[1]]
#[1] "jason"