如何从R获得整齐的Excel输出P值

时间:2019-07-03 10:56:53

标签: r excel export tidy r-corrplot

如何获取使用R从R导出的P值的干净excel数据集

res <- rcorr(as.matrix(df), type = c("pearson"))

我已经使用上面的代码在数据中的所有变量中找到了P值。但是,我有兴趣将这些发现导出到Excel工作表中。我通过使用以下代码完成了此操作:

write.table(P_val, file="df.csv", sep = ",")

此输出是一个excel工作表,但是数据不是“整洁”的,因为所有数据都排成一行,并局限在同一单元格中,并且由于没有意义,因此无法读取数据数据如何关联的设置中的每个变量。

我想要的表是指示所有变量中每个变量的P值。

所以到目前为止,我所做的是(这里我使用R中的简单数据集来显示我的意思):

 df <- USArrests

 res <- rcorr(as.matrix(df), type = c("pearson"))

 P_val <- res$P

 write.table(P_val, file="P_val.csv", sep = ",")

我真的不知道如何从这里前进,所以我希望有人可以帮助我:-)

1 个答案:

答案 0 :(得分:3)

我会用broom::tidyreadr::write_csv来写出来。

library(Hmisc) # for rcorr
library(broom)
library(magrittr) # for pipes %>%
library(readr)

as.matrix(USArrests) %>% 
  rcorr(type = "pearson") %>%
  tidy() %>%
  write_csv("P_val.csv")

结果(在write_csv之前):

# A tibble: 6 x 5
  column1  column2  estimate     n  p.value
  <chr>    <chr>       <dbl> <int>    <dbl>
1 Murder   Assault    0.802     50 2.60e-12
2 Murder   UrbanPop   0.0696    50 6.31e- 1
3 Assault  UrbanPop   0.259     50 6.95e- 2
4 Murder   Rape       0.564     50 2.03e- 5
5 Assault  Rape       0.665     50 1.36e- 7
6 UrbanPop Rape       0.411     50 3.00e- 3