R 计算每个字母出现的总次数,然后计算每个字母出现的概率?

R 计算每个字母出现的总次数,然后计算每个字母出现的概率?,r,R,我试图在R中学习这一点,在一个练习中有一个问题,给你一个名为story.txt的短篇故事文本文档,我在变量story下导入了它。我需要做两件事,首先我需要计算每个字母在故事中出现的数量,第二件事是我需要每个字母出现的概率,并使用概率生成一个情节 我这样做的想法是把故事的所有内容都设置为小写,去掉空格和多余的字符,只留下字母,然后数一数每个字母,唯一的问题是我不知道怎么做,我尝试使用stru-count,但我遇到了一个错误 迄今为止的守则: story <- readLines("story

我试图在R中学习这一点,在一个练习中有一个问题,给你一个名为story.txt的短篇故事文本文档,我在变量story下导入了它。我需要做两件事,首先我需要计算每个字母在故事中出现的数量,第二件事是我需要每个字母出现的概率,并使用概率生成一个情节

我这样做的想法是把故事的所有内容都设置为小写,去掉空格和多余的字符,只留下字母,然后数一数每个字母,唯一的问题是我不知道怎么做,我尝试使用stru-count,但我遇到了一个错误

迄今为止的守则:

story <- readLines("story.txt")
story <- tolower(story) # i sets to lower case
story <- gsub(" ","",story) # remove all spaces
story <- gsub("\\W","",story)
storydata <- str_count(story, "a")
story使用
str_split()
从stringr到split by
,然后使用
table()
进行计数

Lorem <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sit amet odio aliquam, viverra metus id, sodales tortor. Nulla quis pretium tellus. Aenean efficitur sodales nulla nec efficitur. Suspendisse at risus at eros pharetra tincidunt. Quisque pharetra erat non dictum tempor. Nulla feugiat, tortor a dapibus blandit, sapien est ornare felis, quis egestas tellus purus eget quam. Sed justo sapien, pulvinar quis justo vel, tristique condimentum justo. Suspendisse fermentum nibh eros, eu pretium purus molestie vel."

table(stringr::str_split(Lorem,""))
要获得概率,请将这些概率除以总数
nchar(Lorem)
。(对于R,这是矢量化的,因此不需要循环) 如果需要,您可以
tolower()

然后将其包装在
plot()
。。。但是首先使用
sort()
可能会使它看起来更好一些
绘图(排序(表格(stringr::Stru split(Lorem)”)/nchar(Lorem))
使用
Stru split()
从stringr到split by
,然后使用
table()
进行计数

Lorem <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sit amet odio aliquam, viverra metus id, sodales tortor. Nulla quis pretium tellus. Aenean efficitur sodales nulla nec efficitur. Suspendisse at risus at eros pharetra tincidunt. Quisque pharetra erat non dictum tempor. Nulla feugiat, tortor a dapibus blandit, sapien est ornare felis, quis egestas tellus purus eget quam. Sed justo sapien, pulvinar quis justo vel, tristique condimentum justo. Suspendisse fermentum nibh eros, eu pretium purus molestie vel."

table(stringr::str_split(Lorem,""))
要获得概率,请将这些概率除以总数
nchar(Lorem)
。(对于R,这是矢量化的,因此不需要循环) 如果需要,您可以
tolower()

然后将其包装在
plot()
。。。但是首先使用
sort()
可能会使它看起来更好一些
plot(sort(表(stringr::stru split(Lorem,”))/nchar(Lorem))

“我尝试使用str_count,但出现了一个错误。”错误消息通常非常有用。你犯了什么错误?在使用
gsub
进行更改后,您是否看过
故事
?它看起来像你期望的那样吗?如果您需要调试帮助,您应该提供一些示例输入,例如,
story.txt
的前5行。我更新了它Greg!仍然看不到您的错误消息。我最好的猜测是您得到了一个错误“str\u count not found”,因为您没有用
库(stringr)
加载
stringr
。但谁知道呢?“我试着使用str_count,但我得到了一个错误。”错误消息通常是非常有用的。你犯了什么错误?在使用
gsub
进行更改后,您是否看过
故事
?它看起来像你期望的那样吗?如果您需要调试帮助,您应该提供一些示例输入,例如,
story.txt
的前5行。我更新了它Greg!仍然看不到您的错误消息。我最好的猜测是您得到了一个错误“str\u count not found”,因为您没有用
库(stringr)
加载
stringr
。但是谁知道呢……您可能想存储第一步的结果,从
nchar(Lorem)
EDIT中减去出现的标点和空格:我算出了,我进行了数据折叠,并将其全部放在一个字符串上!谢谢您可能希望存储第一步的结果,从
nchar(Lorem)
EDIT中减去出现的标点和空格:我算出了,我进行了数据折叠,并将其全部放在一个字符串上!谢谢