Экспорт таблицы пользовательских описательных статистических данных - PullRequest
0 голосов
/ 01 декабря 2018

Я потратил несколько недель на поиск решения моей проблемы не только поиска, но и создания сводной таблицы описательной статистики для моих данных, которая экспортируется в xlsx (в идеале).Я нашел только частичные ответы, и мои знания в пакетах R и R все еще достаточно просты, чтобы ограничить мой прогресс.Мой набор данных - это данные временных рядов с 6 столбцами, которые содержат более 50 000 строк.

Информация о моем DF:

DateTime: формат POSIXCT "ГГГГ-ММ-ДД ЧЧ: ММ: СС"

Var1: номер

Var2: номер

Var3: число

Var4: коэффициент w / 2 уровня "A", "B"

Var5: коэффициент w / 4 уровня "S1", "S2",«S3», «S4»

Мои цели заключаются в следующем:

  1. Манипулировать моим фреймом данных с помощью тидиверса для подмножества моих данных

  2. Возьмите подмножество данных, чтобы создать 1 сводную таблицу (т.е. в формате tibble или data.frame) с 2 субфакторами (Var4 и / или Var5) для Var1, Var2 и Var3.Ниже приведен упрощенный визуальный пример таблицы, к которой я стремлюсь:

ExampleTable

Экспорт сводной таблицы (или сводных таблиц, если одна таблица невозможна) в xlxs (в идеале), .CSV или .TXT для использования в Excel для редактирования стилистических таблиц.На данный момент пакет «writexl» работает очень хорошо для меня, так как у меня есть проблемы с пакетами «xlsx» и «openxlsx».Вот код, необходимый для экспорта в xlsx с использованием пакета openxlsx: write_xlsx(dataframe, path = "C:/Users/user/Desktop").Примечание для пользователей MacOS: путь = / Users / admin / yoursubfolder / yoursubfolder .... (заполните "yoursubfolder" реальным именем папки на вашем компьютере)

Что я сделал:

  • Использовал dplyr и функцию%>% для манипулирования данными без и с фактором Var4 или Var5
  • Попытка создать сводную таблицу с Var4 в качестве фактора для Var1, Var2 и Var3 (частичный успех; стиль - это не то, что мне нужно, или его нельзя экспортировать, чтобы преуспеть)
  • Просматривал несколько вопросов StackOverflow и Google безуспешно ищет код, который подходит для моего конкретного случая.Я попытался создать qwraps2 и изучил следующие пакеты для чего-то готового: psych, stargazer и HMSIC.Мне не нравятся их стили таблиц, и у них не все есть возможность просто показать 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 и все возможности программного обеспечения, но я нахожу очень неудобным, что не существует простого и простого способа экспортировать таблицы в консоли для копированияи вставлять в полезные формы, такие как электронные таблицы Excel или документы Word, вместо стандартного экспорта в формате LaTex (чего я вообще не понимаю).Я знаю, что эта тема обсуждалась на разных форумах, и другие разделяют мое мнение о том, насколько ужасно это особенно для людей, которым она нужна для обработки данных, а не для создания документов, таких как Rmarkdown.

1 Ответ

0 голосов
/ 01 декабря 2018

Пример с вашим 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))

Надеюсь, это поможет

...