R:如何自动计算数据框,然后根据多个数据框的结果生成图表?

如何解决R:如何自动计算数据框,然后根据多个数据框的结果生成图表?

如何建立动态的“下流管道”以使用R推动数据帧通过以使用这些数据帧自动计算公式?我有一个称为autocalc的数据框,其中为公式刻出了空白。例如,我需要应用这样的方程式:autocalc$PPH <- Tokyo$P / Tokyo$PH。 PPH已经是列/向量。

autocalc <- data.frame("INCOME" = c("$0 to $15,000","$15,000 to $29,999","$30,000 to $39,"$40,000 to $49,"$50,000 to $69,"$70,000 to $99,"$100,000 to $149,999"),"PPH" = c(0,0),"PTS" = c(0,0))
    
    autocalc$PPH <- Tokyo$P / Tokyo$PH 
    autocalc$PTS <- autocalc$PPH * .05

此数据框的结果将用于使用ggplot2构建图表。

从样本方程式可以看出,有一个名为Tokyo的数据框。我有三个城市数据框(纽约,巴黎,东京)。每个数据框都有城市的囚犯(向量P)和人口(向量PH)。该数据按收入组进一步分类

Tokyo <- data.frame("INCOME" = c("$0 to $15,"P" = c(1844,1062,1036,448,770,364,395),"PH" = c(84900,721007,80800,380004,675000,32900,39500))

我想将每个城市应用于自动计算数据框并生成三个单独的图表。我可以为每个城市复制/粘贴三个版本的autocalc,但这似乎是不好的代码,因为如果必须修复autocalc中的某些内容,则必须为每个城市重做代码

我查看了以下线索,但我觉得这不应该是一个复杂的问题:

  1. 在R6库中使用面向对象的编程。创建一个自动计算类并将副本应用于这三个城市?对于初学者来说,没有多少R6教程有意义,所以我觉得有一种更简单的方法吗?

  2. 使用lapply()。我发现了一个教程,该教程产生了类似的内容(基于三个单独的数据框的三个单独的图表),但是无法解释如何将autocalc$PPH <- Tokyo$P / Tokyo$PH交换为autocalc$PPH <- Paris$P / Paris$PH。并保留每个城市的自动计算功能,并准备三个图表。相反,我应该摆脱自动计算数据框,而是向每个城市的数据框添加行吗?

  3. 我的朋友不太熟悉R,但是是一名程序员,建议您研究一下收集方法。编写脚本并使用方法进行重复操作。但是,我找不到与R有关的教程。我认为这需要我对R6库使用面向对象的编程吗?我在想也许我的任务更适合Python?有人告诉我R更多用于分析,而不是构建像这样的动态对象。

解决方法

我认为选项2是最简单直接的选择。您可以将3个数据框放在列表中,然后使用lapply。您可以在lapply中传递匿名函数,以引用该函数内的每个城市数据框。

list_dfs <- list(Tokyo,Paris,NewYork)

list_plots <- lapply(list_dfs,function(x) {
  autocalc$PPH <- x$P / x$PH 
  autocalc$PTS <- autocalc$PPH * .05
  #ggplot2  code here
})

ggplot2中输入lapply代码后,它将为每个城市生成3个地块的列表,您可以通过进行list_plots[[1]]list_plots[[2]]和{ {1}}。

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

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?