"编程"R中的出版物等级表

Opo*_*sum 0 r

众所周知,R很容易处理大数据.我遇到的问题是将R中执行的分析结果放在表格中以供发布.

我想在一个例子中解释一下.我们有这个简单的数据集:

value<-cbind(c(rnorm(100,500,90),rnorm(100,800,120)))
genotype<-cbind(c(rep("A",100),rep("B",100)))
gender<-rep(c("M","F","F","F"),50)
df<-cbind(value,genotype,gender)
df<-as.data.frame(df)
colnames(df)<-c("value","genotype","gender")
df$value<-as.numeric(as.character(df$value))
Run Code Online (Sandbox Code Playgroud)

我想分析一个科学项目的数据.要提取我需要的信息,我必须这样做:

> quantile(subset(df,gender=="M")$value)
       0%       25%       50%       75%      100% 
 323.6955  523.1237  655.6593  828.7438 1045.0406 
> quantile(subset(df,gender=="F")$value)
       0%       25%       50%       75%      100% 
 233.3721  520.1101  633.8767  802.2277 1149.3072 
> wilcox.test((subset(df,gender=="M")$value),(subset(df,gender=="F")$value))$p.value
[1] 0.924699
> table(df$genotype)

  A   B 
100 100 
> table(df$gender)

  F   M 
150  50 
> prop.test(50,150)$p.value
[1] 6.311983e-05
> table(df$genotype,df$gender)

     F  M
  A 75 25
  B 75 25
> prop.table(table(df$genotype,df$gender),2)

     F   M
  A 0.5 0.5
  B 0.5 0.5
> prop.test(c(75,25),c(125,50))$p.value
[1] 0.2990147
Run Code Online (Sandbox Code Playgroud)

嗯,这给了我所需要的所有信息,但是从创建出版质量表还有很长的路要走.为此,我必须将结果中的数字复制/粘贴到Excel中.最终产品是这样的:

在此输入图像描述

问题是复制/粘贴是不方便的,可能会因大量数据而变得乏味,并且会产生人为错误的可能性.有没有办法直接在R中"编程"或"编码"这个表,这样我就可以运行代码并将输出保存为.csv文件?

eks*_*oem 5

您可以使用该Publish软件包(在CRAN上还没有,但可以从GitHub获得).

library(devtools)
install_github("tagteam/Publish")
library(Publish)
Run Code Online (Sandbox Code Playgroud)

然后你可以使用这个univariateTable函数来准确地得到你要求的(Q请求中位数和IQR)

univariateTable(gender ~ Q(value) + genotype, data=df)
  Variable        Level    gender = M (n=50)   gender = F (n=150)
1    value median [iqr] 647.0 [488.4, 829.0] 615.4 [493.5, 797.4]
2 genotype            A            25 (50.0)            75 (50.0)
3                     B            25 (50.0)            75 (50.0)
         Total (n=200) p-value
1 617.9 [491.0, 812.4]   0.666
2           100 (50.0)        
3           100 (50.0)   1.000
Run Code Online (Sandbox Code Playgroud)

该函数返回一个数据框,可以使用,比如说write.table或类似的东西轻松保存到文本文件中.