我有一个包含ID字段和TEXT字段的CSV文件.我需要TEXT在每一行添加第三个字段,字段数为count .我该怎么办?
示例:如果这是我的起始数据框
ID TEXT
1 1 Lorem ipsum dolor sit amet
2 2 Praesent venenatis nisl id
3 3 Nunc dapibus maximus vulputate. Nunc
Run Code Online (Sandbox Code Playgroud)
那么期望的结果是
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
Run Code Online (Sandbox Code Playgroud)
我会使用stringi包中的方便stri_count_words()函数.
df$WordCount <- stringi::stri_count_words(df$TEXT)
Run Code Online (Sandbox Code Playgroud)
这使
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
Run Code Online (Sandbox Code Playgroud)
但是在基数R中,您可以strsplit()在删除标点符号后拆分空格,然后获取列表元素的长度.
lengths(strsplit(gsub("[[:punct:]]", "", df$TEXT), "\\s+"))
# [1] 5 4 5
Run Code Online (Sandbox Code Playgroud)
或者,正如@David建议的那样,只计算空格并添加1. trimws()用于删除可能潜伏在字符串开头或结尾的任何错误空格.
lengths(gregexpr("\\s+", trimws(df$TEXT))) + 1L
# [1] 5 4 5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
429 次 |
| 最近记录: |