使用R函数查找文件中单词的出现次数

 赵浩民奕君 发布于 2023-01-29 12:43

我使用以下代码来查找memory文件中单词的出现次数,我得到了错误的结果.你能帮助我知道我错过了什么吗?

注1:问题是寻找"记忆"一词的确切出现!注意2:我已经意识到他们正在寻找"记忆"甚至是"记忆"之类的东西是不被接受的!那是我猜想引起混乱的部分.我试了一下"动作"这个词,正确答案是7!你也可以试试.

#names=scan("hamlet.txt", what=character())
names <- scan('http://pastebin.com/raw.php?i=kC9aRvfB', what=character())
Read 28230 items
> length(grep("memory",names))
[1] 9

这是文件

1 个回答
  • 问题实际上是莎士比亚使用标点符号.文中有很多撇号(').当R函数scan遇到一个撇号时,它假定它是一个带引号的字符串的开头,并读取所有字符,直到下一个撇号成为names数组的单个条目.其中一个长条目恰好包含"memory"一词的两个实例,因此将匹配总数减少一个.

    您可以通过告知scan将所有引号视为普通字符而不是特别处理它来解决问题:

    names <- scan('http://pastebin.com/raw.php?i=kC9aRvfB', what=character(), quote=NULL )
    

    使用R实现时要小心grep.它的行为方式与通常的GNU/Linux程序完全不同.特别是,你在这里使用它的方式将找到匹配单词的数量,而不仅仅是一些人建议的匹配行的总数.

    2023-01-29 12:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有