我想在同一行的不同列中添加一个包含字母数量a-z的列。
dataset$count <-length((gregexpr('[a-z]', as.character(dataset$text))[[1]]))
不起作用。
我想要实现的结果:
text | count
a | 1
ao | 2
ao2 | 2
as2e | 3
as2eA | 3
答案 0 :(得分:15)
棘手的一个:
nchar(gsub("[^a-z]","",x))
答案 1 :(得分:2)
这应该可以解决问题:
numchars<-function(txt){
#basically your code, but to be applied to 1 item
tmpres<-gregexpr('[a-z]', as.character(txt))[[1]]
ifelse(tmpres[1]==-1, 0, length(tmpres))
}
#now apply it to all items:
dataset$count <-sapply(dataset$text, numchars)
另一种选择更多的是两步法:
charmatches<-gregexpr('[a-z]', as.character(dataset$text))[[1]]
dataset$count<-sapply(charmatches, length)