我有一个数据框,每行都有单词。某些行的示例:
df
This is a word
Another word
third word
word
我想计算每一行的数量并将其写入一个新的数据框,并在最终的csv中输入如下内容:
df,total
This is a word,4
Another word,2
third word,2
word,1
可以使用空格字符吗?
答案 0 :(得分:7)
您可以使用str_count
library(stringr)
df$total <- str_count(df$df, '\\s+')+1
df$total
#[1] 4 2 2 1
或者
nchar(gsub('[^ ]+', '',df$df))+1
#[1] 4 2 2 1
或者
lengths(strsplit(df$df, '\\S+'))
#[1] 4 2 2 1
或者
count.fields(textConnection(df$df))
#[1] 4 2 2 1
答案 1 :(得分:7)
只需将strsplit
与您希望的分割一起使用,然后计算出来的项目数。
df$total <- sapply(df$df, function(x) length(unlist(strsplit(as.character(x), "\\W+"))))
给我以下输出:
df total
1 This is a word 4
2 Another word 2
3 third word 2
4 word 1