Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从具有统计信息的列表生成GGPLOT_R_Ggplot2_Split_Time Series - Fatal编程技术网

R 从具有统计信息的列表生成GGPLOT

R 从具有统计信息的列表生成GGPLOT,r,ggplot2,split,time-series,R,Ggplot2,Split,Time Series,这可能对一段代码要求太高了,但下面是: 我可以: 在一个大的数据帧列表上绘制多个单独的GGPLOT 在dataframe列表中的每个dataframe内的一小组数据上以编程方式进行方差分析 我有一个很长的数据集,类似于存储在对象“a”中的数据集: 这在志愿者(V1、V2、V3…)、条件(Cond1、Cond2、Cond3…)、时间(0,4,8)和化合物(HBA、BPA、HPP、BPV…)上重复,共观察了约939次,一式三份 这已被拆分为: b<-split(a, f=a$Compounds

这可能对一段代码要求太高了,但下面是:

我可以:

  • 在一个大的数据帧列表上绘制多个单独的GGPLOT
  • 在dataframe列表中的每个dataframe内的一小组数据上以编程方式进行方差分析
  • 我有一个很长的数据集,类似于存储在对象“a”中的数据集:

    这在志愿者(V1、V2、V3…)、条件(Cond1、Cond2、Cond3…)、时间(0,4,8)和化合物(HBA、BPA、HPP、BPV…)上重复,共观察了约939次,一式三份

    这已被拆分为:

    b<-split(a, f=a$Compounds)
    
    效果很好

    但对于ggplot中的
    b[[i]]
    或类似的内容,则不适用。也可以自动生成ggplot并将其保存为循环名称,如plot_HBA.jpg,然后使用plot_BPA.jpg保存下一个(列表中下一个化合物的名称)

    我还想对化合物内、志愿者内、条件内的时间点(0,4,8)的重复观察进行方差分析

    我试过:

    library(rstatix)
    library(tidyverse)
    
    a%>%group_by(Compounds,Condition,Volunteer)%>%anova_test(Conc~Time)
    
    但它只是说平方和的残差是0


    我希望在每个方面的方框图上都有p值的括号,以便在整个时间序列中进行统计上的显著变化。

    您可以在for循环中执行此操作,但我认为定义一个创建图的函数(按化合物名称过滤数据集)更简洁一些然后使用purrr::map对每个复合名称运行函数。例如,您可以向函数添加参数,以使保存打印成为一个选项,以防您不总是希望它保存文件

    库(dplyr)
    图书馆(purrr)
    图书馆(GG2)
    #创建与示例类似的示例数据集
    种子(1)
    志愿者
    
    ggplot(data = b$HBA, 
           aes(x=as.factor(Time), y=(Conc)))+
      geom_boxplot(width=0.5)+
      facet_wrap(Volunteer~Conditions, ncol = 3)+
      theme_bw()
    
    library(rstatix)
    library(tidyverse)
    
    a%>%group_by(Compounds,Condition,Volunteer)%>%anova_test(Conc~Time)