自定义描述统计 Table 导出
Custom Descriptive Statistics Table Export
我花了几个星期的时间寻找我的问题的解决方案,不仅找到而且创建描述性统计摘要 table 我的数据是 exportable 到 xlsx(理想情况下)。我只找到了部分答案,我在 R 和 R 包中的知识仍然是基本的,足以限制我的进步。我的数据集是时间序列数据,有 6 列,有 50,000 多行。
我的DF信息:
日期时间:POSIXCT 格式"YYYY-MM-DD HH:MM:SS"
Var1: 数量
Var2: 数量
Var3: 数量
Var4:具有 2 个水平的因子 "A","B"
Var5:具有 4 个水平的因子 "S1"、"S2"、"S3"、"S4"
我的目标如下:
使用 tidyverse 对我的数据进行子集处理我的数据框
使用子集数据创建 1 个摘要 table(即以 tibble 或 data.frame 格式)和 2 个子因子(Var4 and/or Var5) Var1、Var2 和 Var3。下面是我的目标 table 的简化可视化示例:
- 将摘要 table(或摘要 tables,如果一个 table 不可能)导出到 xlxs(理想情况下)、.CSV 或 .TXT 以用于 Excel 用于文体 table 编辑。目前,"writexl" 包对我来说效果很好,因为我在使用 "xlsx" 和 "openxlsx" 包时遇到问题。以下是使用 openxlsx 包导出到 xlsx 所需的代码:
write_xlsx(dataframe, path = "C:/Users/user/Desktop")
。 MacOS 用户请注意,path = /Users/admin/yoursubfolder/yoursubfolder.....("yoursubfolder" 填写您计算机上的实际文件夹名称)
我做了什么:
- 使用 dplyr 和 %>% 函数在不使用和使用因子 Var4 或 Var5 的情况下操作数据
- 尝试创建摘要 table,其中 Var4 作为 Var1、Var2 和 Var3 的一个因素(部分成功;样式不是我想要的,或者它不是将 table 导出到 excel)
- 查看了多个 Whosebug 问题并进行了 Google 搜索,但没有成功找到适用于我的特定案例的代码。我已尝试使用 qwraps2 创建一个并查看以下包中的内容 pre-made:psych、stargazer 和 HMSIC。我不喜欢他们的 table 样式,而且他们并非都可以选择只显示 N、平均值、StDev、SEM、Min 和 Max。
- 我知道 SEM 不是大多数软件包的标准功能;因此,我从堆栈溢出的答案中借用了这个函数,因为我不知道如何创建函数。这是借用的代码:
SEM <- function(x) sd(x)/sqrt(length(x))
由于我无法附上示例数据并且我的编码非常基础,所以我可以想出以下办法:
示例数据:
很遗憾,我无法附上样本数据进行测试。另外由于我对R的了解有限,我无法做出完美的数据框。下面是一个示例数据框,但我无法将因子均匀分布在各自的列中(抱歉)。这是我的代码:
df <- data.frame(
"DateTime" = seq(c(ISOdate(2018,03,01)), by = "day", length.out = 100),
"Var1" = rnorm(1:100),
"Var2" = rnorm(1:100),
"Var3" = rnorm(1:100),
"Var4" = c("A", "B"),
"Var5" = c("S1","S2", "S3", "S4"))
我正在尝试这个:
"S1"[(1:25)],
"S2"[(26:50)],
"S3"[(51:75)],
"S4"[(76:100)] # and
"A"[(1:50], "B"[(51:100)] #but that didn't work, so sorry again.
尽管我缺乏正确的编码,但任何在 R 方面有更多经验的人提供的任何指导、提示和建议都将不胜感激,因为我喜欢 R 和软件的所有功能,但我觉得很不方便,因为没有简单直接的方法可以在控制台中导出 table 以复制并粘贴到有用的形式,如 Excel 电子表格或 Word 文档,而不是标准的 LaTex 格式导出(顺便说一句,我根本不明白)。我知道这个话题已经在不同的论坛上讨论过了,其他人也和我一样认为它有多糟糕,特别是对于那些需要它来进行数据处理而不是像 Rmarkdown 这样的文档创建的人来说。
你的 df 的一些例子:
library(dplyr)
library(tidyr)
SEM_function <- function(x){sd(x)/sqrt(length(x))}
df %>% as_tibble() %>%
gather("Var_num", "value",Var1:Var3) %>%
group_by(Var_num, Var4,Var5) %>%
summarise("N" = n(),
"mean" = mean(value),
"StDev" = sd(value),
"SEM" = SEM_function(value) ,
"min" = min(value),
"max" = max(value))
希望对您有所帮助
我花了几个星期的时间寻找我的问题的解决方案,不仅找到而且创建描述性统计摘要 table 我的数据是 exportable 到 xlsx(理想情况下)。我只找到了部分答案,我在 R 和 R 包中的知识仍然是基本的,足以限制我的进步。我的数据集是时间序列数据,有 6 列,有 50,000 多行。
我的DF信息:
日期时间:POSIXCT 格式"YYYY-MM-DD HH:MM:SS"
Var1: 数量
Var2: 数量
Var3: 数量
Var4:具有 2 个水平的因子 "A","B"
Var5:具有 4 个水平的因子 "S1"、"S2"、"S3"、"S4"
我的目标如下:
使用 tidyverse 对我的数据进行子集处理我的数据框
使用子集数据创建 1 个摘要 table(即以 tibble 或 data.frame 格式)和 2 个子因子(Var4 and/or Var5) Var1、Var2 和 Var3。下面是我的目标 table 的简化可视化示例:
- 将摘要 table(或摘要 tables,如果一个 table 不可能)导出到 xlxs(理想情况下)、.CSV 或 .TXT 以用于 Excel 用于文体 table 编辑。目前,"writexl" 包对我来说效果很好,因为我在使用 "xlsx" 和 "openxlsx" 包时遇到问题。以下是使用 openxlsx 包导出到 xlsx 所需的代码:
write_xlsx(dataframe, path = "C:/Users/user/Desktop")
。 MacOS 用户请注意,path = /Users/admin/yoursubfolder/yoursubfolder.....("yoursubfolder" 填写您计算机上的实际文件夹名称)
我做了什么:
- 使用 dplyr 和 %>% 函数在不使用和使用因子 Var4 或 Var5 的情况下操作数据
- 尝试创建摘要 table,其中 Var4 作为 Var1、Var2 和 Var3 的一个因素(部分成功;样式不是我想要的,或者它不是将 table 导出到 excel)
- 查看了多个 Whosebug 问题并进行了 Google 搜索,但没有成功找到适用于我的特定案例的代码。我已尝试使用 qwraps2 创建一个并查看以下包中的内容 pre-made:psych、stargazer 和 HMSIC。我不喜欢他们的 table 样式,而且他们并非都可以选择只显示 N、平均值、StDev、SEM、Min 和 Max。
- 我知道 SEM 不是大多数软件包的标准功能;因此,我从堆栈溢出的答案中借用了这个函数,因为我不知道如何创建函数。这是借用的代码:
SEM <- function(x) sd(x)/sqrt(length(x))
由于我无法附上示例数据并且我的编码非常基础,所以我可以想出以下办法:
示例数据:
很遗憾,我无法附上样本数据进行测试。另外由于我对R的了解有限,我无法做出完美的数据框。下面是一个示例数据框,但我无法将因子均匀分布在各自的列中(抱歉)。这是我的代码:
df <- data.frame(
"DateTime" = seq(c(ISOdate(2018,03,01)), by = "day", length.out = 100),
"Var1" = rnorm(1:100),
"Var2" = rnorm(1:100),
"Var3" = rnorm(1:100),
"Var4" = c("A", "B"),
"Var5" = c("S1","S2", "S3", "S4"))
我正在尝试这个:
"S1"[(1:25)],
"S2"[(26:50)],
"S3"[(51:75)],
"S4"[(76:100)] # and
"A"[(1:50], "B"[(51:100)] #but that didn't work, so sorry again.
尽管我缺乏正确的编码,但任何在 R 方面有更多经验的人提供的任何指导、提示和建议都将不胜感激,因为我喜欢 R 和软件的所有功能,但我觉得很不方便,因为没有简单直接的方法可以在控制台中导出 table 以复制并粘贴到有用的形式,如 Excel 电子表格或 Word 文档,而不是标准的 LaTex 格式导出(顺便说一句,我根本不明白)。我知道这个话题已经在不同的论坛上讨论过了,其他人也和我一样认为它有多糟糕,特别是对于那些需要它来进行数据处理而不是像 Rmarkdown 这样的文档创建的人来说。
你的 df 的一些例子:
library(dplyr)
library(tidyr)
SEM_function <- function(x){sd(x)/sqrt(length(x))}
df %>% as_tibble() %>%
gather("Var_num", "value",Var1:Var3) %>%
group_by(Var_num, Var4,Var5) %>%
summarise("N" = n(),
"mean" = mean(value),
"StDev" = sd(value),
"SEM" = SEM_function(value) ,
"min" = min(value),
"max" = max(value))
希望对您有所帮助