微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R-Markdown 中数字向量的均匀间距

如何解决R-Markdown 中数字向量的均匀间距

我目前在上中级统计课。我在我的家庭作业中遇到了一个问题,问题如下:

来自作业:“为囊性纤维化患者创建一个包含这 25 个 BMI 观察值的向量 x...

68,65,64,67,93,68,89,69,90,66,70,92,72,86,97,71,95

我需要帮助的部分:

一个。创建一个从 60 到 100 的直方图,在 60、65、70、75、80、85、90、95、100 处有中断。"

B.计算属于以下类别的观察值的百分比:

  1. 60-65
  2. 65-70
  3. 70-75
  4. 75-80
  5. 80-85
  6. 85-90
  7. 90-95
  8. 95-100 总计 100%

我创建了一个名为 cyst_fibro_sample 的对象来包含观察结果。该作业指示我们使用 R 来计算一些基本统计数据,例如五个数字汇总、四分位距和标准差。我正在使用内置的 hist() 函数,因为我没有变量,只有观测值要绘制,我不知道如何使用 ggplot()

绘制观测值

hist(x,breaks = 60,70...) 我想避免手动输入所有值,因为这非常低效。但是,我似乎无法进行均匀间距的矢量操作。

我希望该参数为 hist(x,breaks = c(60:100,increasing by = 5)

对于作业的 b 部分,我认为我们被要求计算每个观察类别的密度,但我不确定。

感谢任何帮助!

解决方法

我在这里使用了 cars 数据集,但是通过使用函数来检测边界,我们可以使用 seq 生成中断/bin 的向量来生成直方图,并计算密度使用 cut

data <- cars

make_bins <- function(data,m = 5) {
  rounded <- round(data/m) * m
  bins <- seq(min(rounded),max(rounded),by = m)
  return(bins)
}

bins <- make_bins(data$dist)

hist(data$dist,bins)

data$bins <- cut(data$dist,bins,include.lowest = TRUE)
dens <- table(data$bins)/nrow(data)
print(dens)
,

我正在使用 cars 包中的 ggplot2 数据集。

如何将 scale_x_continuous 包中的 ggplot2seq 一起使用?

就您而言,seq(from = 60,to = 100,by = 5)

library(ggplot2)
library(magrittr)

cars %>% 
  ggplot(aes(x = dist))+
  geom_histogram() +
  scale_x_continuous(breaks = seq(from = 0,to = 120,by = 20))

reprex package (v0.3.0) 于 2021 年 1 月 27 日创建

原始直方图:

library(ggplot2)
library(magrittr)

cars %>% 
  ggplot(aes(x = dist))+
  geom_histogram()

reprex package (v0.3.0) 于 2021 年 1 月 27 日创建

,

我在 R 的基本直方图函数的 break 参数中使用了 seq() 函数。

hist(x,breaks = seq(60,100,5)

我还想出了如何计算作业中给出的每个界限的百分比。

sum((x >= 60,& x < 65)/length(x)) * 100

我将每个百分比保存为对象,我想用它们制作一个简单的数据框。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。