计算数据帧的行中的总字数

时间:2015-07-14 05:09:21

标签: r

我有一个数据框,每行都有单词。某些行的示例:

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

可以使用空格字符吗?

2 个答案:

答案 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