2016-05-07 6 views
3

私はIDフィールドとTEXTフィールドのCSVファイルを持っています。私はすべての行にTEXTフィールドの単語カウントを持つ3番目のフィールドを追加する必要があります。 どうすればいいですか?CSVファイルのすべての行でワードカウントを行うにはどうすればよいですか?

例:これは

ID         TEXT 
1 1   Lorem ipsum dolor sit amet 
2 2   Praesent venenatis nisl id 
3 3 Nunc dapibus maximus vulputate. Nunc 

私の開始データフレームであれば、所望の結果が、私はstringiパッケージから便利stri_count_words()機能を使用することになり

ID         TEXT WordCount 
1 1   Lorem ipsum dolor sit amet   5 
2 2   Praesent venenatis nisl id   4 
3 3 Nunc dapibus maximus vulputate. Nunc   5 

答えて

6

です。ベースRに

ID         TEXT WordCount 
1 1   Lorem ipsum dolor sit amet   5 
2 2   Praesent venenatis nisl id   4 
3 3 Nunc dapibus maximus vulputate. Nunc   5 

しかし与え

は、あなたがして、リスト要素の長さを取る、句読点を削除した後strsplit()とスペースで分割できます。

lengths(strsplit(gsub("[[:punct:]]", "", df$TEXT), "\\s+")) 
# [1] 5 4 5 

それとも、@デビッドが示唆するように、単にスペースをカウントし、1 trimws()を追加し、文字列の先頭や末尾に潜んでいる可能性のある誤ったスペースを削除するために使用されます。

lengths(gregexpr("\\s+", trimws(df$TEXT))) + 1L 
# [1] 5 4 5 
+0

素晴らしい!ありがとうございました! – nickfrenchy