使用 ecdf 图中的值创建一个表

2023-11-29

我正在尝试使用 ecdf 图中的值创建一个表。我在下面重新创建了一个示例。


#Data
data(mtcars)

#Sort by mpg
mtcars <- mtcars[order(mtcars$mpg),]

#Make arbitrary ranking variable based on mpg
mtcars <- mtcars %>% mutate(Rank = dense_rank(mpg))

#Make variable for percent picked
mtcars <- mutate(mtcars, Percent_Picked = Rank/max(mtcars$Rank))

#Make cyl categorical
mtcars$cyl<-cut(mtcars$cyl, c(3,5,7,9), right=FALSE, labels=c(4,6,8))

#Make the graph
ggplot(mtcars, aes(Percent_Picked, color = cyl)) + 
  stat_ecdf(size=1) + 
  scale_x_continuous(labels = scales::percent) +
  scale_y_continuous(labels = scales::percent)
  

Which creates this plot ggplot ecdf graph

我想为总体 Percent_Picked 为 25%、50% 和 75% 时每种柱面类型的值创建一个表。因此,显示 4 缸为 0%,6 缸为 28% 左右,8 缸为 85% 左右。

按组计算分位数并没有给我想要的结果(它显示了当选取了 25%、50% 和 75% 的特定圆柱体类型时选取的所有圆柱体的百分比)。 (例如,以下建议tbradley1013 在他们的博客上仅有助于每个特定柱面的分位数,而不是 Percent_Picked 给定分位数处每个柱面的整体 cdf。)

任何线索将不胜感激!


所以环顾四周我发现这个问题。您通过询问特定于组的 ecdf 值来对此进行了一些扩展,因此我们可以使用dodplyr 中的函数 (这是一个例子] 这样做。有一些slight比较此表和 ggplot 中的值时,值存在差异,我不太确定这是为什么。可能只是 mtcars 数据集有点小,所以如果您在更大的数据集上运行它,我预计它会更接近实际值。


#Sort by mpg
mtcars <- mtcars[order(mtcars$mpg),]

#Make arbitrary ranking variable based on mpg
mtcars <- mtcars %>% mutate(Rank = dense_rank(mpg))

#Make variable for percent picked
mtcars <- mutate(mtcars, Percent_Picked = Rank/max(mtcars$Rank))

#Make cyl categorical
mtcars$cyl<-cut(mtcars$cyl, c(3,5,7,9), right=FALSE, labels=c(4,6,8))

#Make the graph
ggplot(mtcars, aes(Percent_Picked, color = cyl)) + 
  stat_ecdf(size=1) + 
  scale_x_continuous(labels = scales::percent) +
  scale_y_continuous(labels = scales::percent)


create_ecdf_vals <- function(vec){
  df <- data.frame(
    x = unique(vec),
    y = ecdf(vec)(unique(vec))*length(vec)
  ) %>%
    mutate(y = scale(y, center = min(y), scale = diff(range(y)))) %>%
    union_all(data.frame(x=c(0,1),
                         y=c(0,1))) # adding in max/mins
  return(df)
}

mt.ecdf <- mtcars %>%
  group_by(cyl) %>%
  do(create_ecdf_vals(.$Percent_Picked))


mt.ecdf %>%
  summarise(q25 = y[which.max(x[x<=0.25])],
            q50 = y[which.max(x[x<=0.5])],
            q75 = y[which.max(x[x<=0.75])])

ggplot(mt.ecdf,aes(x,y,color = cyl)) +
  geom_step()

~EDIT~
经过一番挖掘后ggplot2文档中,我们实际上可以使用以下命令显式地从图中提取数据layer_data功能。

my.plt <- ggplot(mtcars, aes(Percent_Picked, color = cyl)) + 
  stat_ecdf(size=1) + 
  scale_x_continuous(labels = scales::percent) +
  scale_y_continuous(labels = scales::percent)

plt.data <- layer_data(my.plt) # magic happens here

# and here's the table you want
plt.data %>%
  group_by(group) %>%
  summarise(q25 = y[which.max(x[x<=0.25])],
            q50 = y[which.max(x[x<=0.5])],
            q75 = y[which.max(x[x<=0.75])])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ecdf 图中的值创建一个表 的相关文章

  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • left_join 表示列不存在,即使它存在

    我想用两个不同的变量 tp join 连接两个数据框 出现错误 表示无法在第二个数据帧中找到变量 但是当我运行函数 colnames 时 会显示列名称 为什么会这样呢 df new lt left join master settlemen
  • R 的 dplyr 切片中的奇怪行为

    打电话时slice df i 在 R 的 dplyr 包中 如果我要求的行索引不存在 nrows lt i 它似乎返回除组中的第一行之外的所有行 就像我调用的那样slice df 1 例如 library dplyr c1 lt c a b
  • 将函数应用于每个列组合

    我有一个数据框n列并希望对每个列应用一个函数组合列 这与如何cor 函数将数据帧作为输入并生成相关矩阵作为输出 例如 X lt data frame A rnorm 100 B rnorm 100 C rnorm 100 cor X 这将生
  • 如何更改 Quarto pptx 中的字体格式

    我正在 R 中使用 Quarto 创建 pptx 要更改我尝试更改的默认字体格式mainfont范围 但是当我渲染它时 最终的 pptx 文件具有默认字体 Calibri 这是我的文件 YAML 将 Quarto 文件渲染为 pptx 时如
  • r 连接两个列表并对它们的值求和

    我有两个列表 x y gt x carlo monte simulation model quantum 31 31 9 6 6 gt y model system temperature quantum simulation proble
  • 如何用月份的全名替换数字月份

    使用 tidyverse 包将月份的列更改为完整的实际月份名称 请记住 尽管这些数据只有四个月 但我的真实数据集包含一年中的所有实际月份 我是 tidyverse 的新手 mydata lt tibble camp c Platinum 2
  • 为格子中的每个面板添加不同的独特标签

    很清楚如何在格子中标记面板 https stackoverflow com questions 8508269 how to label panels in lattice using panel text or ltext论据 但是 如果
  • 我可以在 R 中并行读取 1 个大 CSV 文件吗? [复制]

    这个问题在这里已经有答案了 我有一个很大的 csv 文件 需要很长时间才能阅读 我可以使用 parallel 或相关的包在 R 中并行读取此内容吗 我尝试过使用 mclapply 但它不起作用 根据OP的评论 fread来自data tab
  • R中的等值线绘图问题

    编辑 我已经意识到问题的根源 我只有我有数据的县的计数信息 该信息少于我正在绘制的区域中的县数量 按理说 问题代码行在这里 mapnames lt map county plot FALSE 4 names colorsmatched lt
  • 当我用一个观察值运行回归时,为什么“fastLm()”会返回结果?

    为什么fastLm 当我用一项观察进行回归时返回结果吗 下面为什么不lm and fastLm 结果相等吗 library Rcpp library RcppArmadillo library data table set seed 1 D
  • svyby比例的置信区间

    是否存在创建置信区间的现有函数 从一个svyby比例对象 在我的例子中 是一个二进制项目的交叉表survey包裹 我经常比较各组之间的比例 如果有一个可以提取置信区间的函数 使用调查函数svyciprop而不是confint 下面的示例显示
  • R 中的 huxtable 即使有选项也默认为科学记数法(scipen=999)

    我试图生成像样的桌子 并在过去的一周尝试了很多软件包 我的头在游泳 今天早上开始使用 package huxtable 并试图摆脱科学记数法 x lt mtcars 1 5 1 2 x mpg lt x mpg 10000000 get s
  • R 编程中的字符串分割

    目前 下面的脚本将组合的项目代码拆分为特定的项目代码 rule2 lt c MR df 1 lt test grep paste rule2 sep collapse test Name y SpaceName 1 lt function
  • 使用 lpSolve 优化 R 团队名单

    我是 R 新手 有一个想要解决的特定幻想运动队优化问题 我见过其他帖子使用 lpSolve 来解决类似的问题 但我似乎无法理解代码 下面的示例数据表 每个球员都在一个球队中 扮演着特定的角色 有薪水 并且每场比赛都有平均得分 我需要的限制是
  • SQL Server RODBC 连接

    有没有人有使用 RODBC 并连接到 MS SQL Server 2005 或 2008 的连接字符串示例 谢谢 library RODBC dbhandle lt odbcDriverConnect driver SQL Server s
  • R 未获取用户库

    我有一个带 R 3 6 0 的 Fedora 30 系统 用户库设置在Renviron就像这个 R LIBS USER R LIBS USER R x86 64 redhat linux gnu library 3 6 事实上 它出现在交互
  • R中一张图中的多个条形图

    我是 R 初学者 我需要创建一个像这样的图表 https i stack imgur com az56z jpg https i stack imgur com az56z jpg 我不知道如何生成整个数据集 基本思想是某个外显子 ID 会
  • 使用 fread 导入数据后所有列均作为字符

    我导入了一个 CSV 文件 包含文本列和数字列 x lt fread myfile csv header TRUE verbose T na strings c null null 但导入后 当我运行summary x 时 所有列都被视为字
  • RPostgreSQL 无法关闭连接

    我有一个闪亮的应用程序 使用它连接到数据库RPostgreSQL 在应用程序结束时 连接关闭 驱动程序应该被卸载 但我收到错误 警告我连接未关闭 代码看起来像这样 in the app R file but not in the serve

随机推荐

  • sysinfo 系统调用未返回正确的 freeram 值

    我最近使用 sysinfo 系统调用编写了以下 C 代码来显示系统统计信息 有趣的是 sysinfo 结构的 freeram 变量不返回可用 RAM 的数量 而是返回当前 RAM 使用情况 我必须使用一种解决方法 通过从总内存中减去自由内存
  • 如何在本地备份本地 Docker 注册表的镜像?

    如何创建一个本地注册表容器从主机安装卷并在本地保留所有提取的映像 具有持久镜像的本地 Docker 注册表 应该可以有一个临时注册表容器 及其 docker 卷 从而允许不要多次下载图像 即使在注册表 或整个 Docker VM 被丢弃并重
  • 需要从HTML页面解析图像src然后显示它

    我目前正在尝试开发一个应用程序 它可以访问以下网站 http lulpix com 并解析 HTML 并从以下部分获取 img src div class pic rounded 8 div style margin 0 0 36px 0
  • 定义宏以将案例类实例转换为映射并返回时出现编译错误

    我试图理解以下博客文章 其中讨论了如何使用宏创建基于宏的通用方法来将案例类对象与地图相互转换 http blog echo sh post 65955606729 exploring scala macros map to case cla
  • Twisted:如何识别初始连接上的协议,然后委托给适当的协议实现?

    我正在编写一个 Python 程序 它将使用 Twisted 连接到 TCP 服务器 套接字另一端的服务器可能正在运行两种可能的协议 protoA 或 protoB 之一 但我不知道它是哪一种 直到我启动连接并 询问 服务器正在使用哪种协议
  • Angular Bootstrap 模态打开加载

    我在用http angular ui github io bootstrap modal 现在我想在页面加载时打开模态 Angular http angular ui github io bootstrap 有一个指令和 modal 服务
  • 强制浏览器使用Javascript window.open 下载图像?

    有没有办法让图像在单击后立即下载 无需右键单击将图像另存为 我正在使用一个小的 Javascript 函数来调用下载页面 a href Click to download a 在 download php 页面中我有类似的内容 file G
  • 我的 CipherOutputStream 无提示地失败

    我正在尝试使用公钥加密 Java 中的一些二进制数据 如这个有用的页面上所述 http www junkheap net content public key encryption java 按照页面的指示 我使用以下命令创建了公钥和私钥
  • 打开重复 div 的图像预览

    我有一个上传图像并向该图像添加预览的功能 我有两个按钮 当我单击第一个按钮时 它会单击输入类型文件并打开它 第二个按钮会复制 div 如何才能我复制这个 div 并更改它的 id 或类 复制后 我怎样才能使按钮适用于新复制的 div 而不是
  • 序列化为 XML 时忽略父类

    当子类列表上有 XmlElement 时 是否有 JAXB 注释可以忽略父类 只是为了澄清 我想知道是否有更好的方法 而不是将所有父类 getter setter 标记为瞬态 然后必须返回子类并添加 getter setter 并将它们注释
  • 使用 PHP 删除缩写日期中的前导零

    我想知道是否有办法使用 PHP 将此日期格式 01 08 86 1986 年 1 月 8 日 更改为此格式 1 8 86
  • 使用谷歌地图API计算两点之间的距离?

    是否可以将两个纬度长点发送给谷歌来计算两者之间的距离 如果您想使用 v3 谷歌地图 API 这里是我使用的函数 注意 必须添加 libraries geometry到你的脚本源 现在的功能 calculates distance betwe
  • dplyr 总结输出 - 如何保存它

    我需要计算 150 个物种中每种鸟类繁殖活动观察结果的汇总统计数据 数据框包含物种 scodef 观察类型 codef 例如筑巢 和序号日期 自 1 月 1 日起的天数 自多年来收集数据以来 使用 dplyr 我得到了我想要的结果 libr
  • 检测 R 会话是否在启动时在 RStudio 中运行 [重复]

    这个问题在这里已经有答案了 我在终端和 RStudio 在 mac 和 linux 上 中都使用 R 想知道是否可以使用不同的 Rprofiles 为两者 或者最好使用相同的碱基 Rprofile但来源不同环境特定的调整脚本 我认为将以下代
  • Mongoid:使用多个数据库?

    我在 Rails 应用程序中使用 MongoDB 和 MongoID 某些模型如何成为同一服务器上不同 mongo 数据库的一部分 我该如何完成这样的事情呢 我之前在mysql上也遇到过同样的问题 但找不到合理的解决方案 有什么想法吗 最新
  • 包装 div 不会随内容 div 一起扩展

    我已经尝试了大约 15 种不同的教程和技巧来让我的页脚 页眉和三个内容 div 正常工作 我的页面将有一个页眉 左侧的导航栏 中间的内容 右侧的商店和 Google 广告以及下方的页脚 现在 在尝试了一些教程之后 我终于让页脚留在包装器下方
  • 我如何使用 Swift 向网站请求文本?

    因此 我正在制作一个 iOS 应用程序 并且制作了一个警报栏 该警报栏会在每次打开应用程序时根据网站上的文本进行更新 但是当我发出 HTTP 请求时 它只提供该网站的 HTML 如何从网页获取文本而不是 HTML 我正在使用下面的 Swif
  • 字体真棒快捷方式

    我在我的网络项目中使用 Awesome Font 是否有任何选项如何创建一堆图标的快捷方式 例如 我有circle thin图标 现在在页面上我想将三个图标放在一起 所以结果是OOO 但我不想放 3x 次 i class fa fa cir
  • opencv - 图像乘法

    嗨 我正在尝试玩一点 Mat 课 我想在两个图像之间进行乘积元素明智 MATLAB 的 c opencv 端口不相乘 这是我的代码 include
  • 使用 ecdf 图中的值创建一个表

    我正在尝试使用 ecdf 图中的值创建一个表 我在下面重新创建了一个示例 Data data mtcars Sort by mpg mtcars lt mtcars order mtcars mpg Make arbitrary ranki