当前位置:首页 » 《随便一记》 » 正文

R统计人物出场次数,显示都是0 R语言统计人物出场次数显示为0

9 人参与  2022年06月08日 15:06  分类 : 《随便一记》  评论

点击全文阅读


R统计人物出场次数,显示都是0

R语言统计人物出场次数显示为0


运行出来图片是这样

是因为主角名单有问题吗?因为如果删改一下主角名单,有时候会统计前一两个,但是数量一样明显不对。我的主角名单就是单纯输入名字,需要什么别的操作吗?

微信截图_20220608150450.png

代码如下


#加载所需的R包

library(ggplot2)

library(data.table)

library(reshape2)

#设置文件路径

setwd("D:/可视化")

#载入主角名单

roles = readLines("主角名单.txt")

roles[1:5]

#载入小说文本数据

yitian = readLines("倚天屠龙记.txt")

#将原小说进行分段

para_head = grep("\s+", yitian, perl = T)

cut_para1 = cbind(para_head[1:(length(para_head)-1)], para_head[-1]-1)

yitian_para = sapply(1:nrow(cut_para1), function(i) paste(yitian[cut_para1[i,1]:cut_para1[i,2]], collapse = ""))

writeLines(yitian_para, "D:/可视化/yitian_para.txt")

#对角色进行统计

roles1 = paste0("(", gsub(" ", ")|(", roles), ")")

roles_l = strsplit(roles, " ") # 总结每个人的不同称呼

#计算每个人物名称的出现次数

role_para = sapply(roles1, grepl, yitian_para)

colnames(role_para) = sapply(roles_l, function(x) x[1])

#将角色出现次数赋值到一个数据框中以便作图

role_count = data.frame(role = factor(colnames(role_para),

levels = colnames(role_para)[order(colSums(role_para), decreasing = T)]),

count = colSums(role_para))

#根据出现次数绘图

ggplot(role_count, aes(x = role, y = count, fill = role)) +

geom_bar(stat = "identity", width = 0.75) +

xlab("Role") +

ylab("Count") +

theme(axis.text=element_text(size=30, angle = 90),

axis.title=element_text(size=20,face="bold"),

axis.title.x = element_text(vjust=-2),

legend.position="none")



点击全文阅读


本文链接:http://m.zhangshiyu.com/post/41432.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1