Я получаю сообщение об ошибке функции zip :: unzip при использовании определенной пользователем функции для создания нескольких файлов .do c с пакетом офицера - PullRequest
0 голосов
/ 28 января 2020

Для начала, я довольно новичок в программировании на R (или программировании в целом) - так что, возможно, я допустил несколько довольно простых ошибок. Мне нужна эта функция, чтобы генерировать обратную связь для участников моего эксперимента - перед основной процедурой они заполнят анкету HEXACO. Я создал функцию для расчета и внедрения STEN в фрейм данных. Теперь я хочу, чтобы функция генерировала результат для баллов каждого человека, принимая ID и значение STEN для каждой черты из строки во фрейме данных.

PRINT.HEXACO <- function(data) {

for(row in 1:nrow(data)) {

## read values from "data" of every trait STEN and person ID.

id <- data[row, "id"]
HH_sten <- data[row, "HH_sten"]
EM_sten <- data[row, "EM_sten"]
EX_sten <- data[row, "EX_sten"]
AG_sten <- data[row, "AG_sten"]
CS_sten <- data[row, "CS_sten"]
OP_sten <- data[row, "OP_sten"]

    ## Create STEN dataframe needed for plot *
    STEN_df <- data.frame(names = c("H-H", "EM", "EX", "AG", "CS", "OP"),
                          values = c(HH_sten, EM_sten, EX_sten, AG_sten, CS_sten, OP_sten))

    ## Make it a .gather object needed for plot *

    STEN_df.gather <- gather(STEN_df, key = "Scale", val = "Val")

    ## Create a plot! *

    STEN_plot <- ggplot(STEN_df.gather, aes(x = Scale, y = Val)) +
        theme_minimal() + 
        scale_x_discrete(labels = c("H-H", "EM", "EX", "AG", "CS", "OP"), name="Personality traits") + 
        scale_y_continuous(name=NULL, limits = c(0,10), breaks = (0:10))

## Taking template.doc for styles
    HEXACO_report <- read_docx("template.doc") %>%
        body_add_par(value = "HEXACO personality profile", style = "Title") %>%
        body_add_par(value=" ") %>%

## Printing ID of person

        body_add_par(value = paste("Person's ID:",id,sep = " ")) %>%

        ## generating a ggplot of HEXACO profile!   

        body_add_gg(value = STEN_plot, style = "centered") %>%

        body_add_par(value=" ") %>%

        ##Information about person's STEN in first scale, and if it's low/high
        body_add_par(value = paste("Honesty - Humility: STEN", HH_sten, "-", sep = " "), style = "Heading 1")%>%
        if(HH_sten <= 2) {
            slip_in_text(value = "very low", style = "Heading 1")
        } else if(HH_sten <= 4) {
            slip_in_text(value = "low", style = "Heading 1")
        } else if(HH_sten <= 6) {
            slip_in_text(value = "middle", style = "Heading 1")
        } else if(HH_sten <= 8) {
            slip_in_text(value = "high", style = "Heading 1")
        } else { 
            slip_in_text(value = "very high", style = "Heading 1")}%>%

        body_add_par(value=" ") %>%

        ##description for Honesty - Humility

        body_add_par(value="Description for high values of HH", style = "No Spacing") %>%

        body_add_par(value=" ") %>%

        body_add_par(value="Description for low values of HH", style = "No Spacing") %>%

## In there goes the same code for all other scales of the questionnaire

## And finally creating the report

        print(target = paste0("/raporty/Raport_",id,".doc"))
    }
}

После запуска функции в тестовом фрейме данных Я получил странное сообщение об ошибке:

Ошибка в zip :: unzip (zipfile = newfile, exdir = folder): ошибка zip: Cannot open zip fileC: \ Users \ Michał \ AppData \ Local \ Temp \ RtmpainnhZ \ file1bcc2b7bcd6.do c>for reading в файле zip.c:238 Кроме того: Предупреждение:

Ошибка в zip :: unzip (zipfile = newfile, exdir = folder): ошибка zip: Cannot open zip fileC: \ Users \ Michał \ AppData \ Local \ Temp \ RtmpainnhZ \ file1bcc2b7bcd6.do c>for reading в файле zip.c:238

Я думаю, что функция распаковки используется при создании .do c пакетом офицера. Но я не знаю, что может быть причиной ошибки, поскольку я никогда раньше не использовал функцию zip :: unzip, и я думаю, что моих текущих знаний в R может быть недостаточно для этой проблемы. Может быть, у кого-то была подобная проблема раньше, или просто наизусть знаете решение этой проблемы? Я прошу помощи.

Вот глава моего тестового фрейма данных:

TestDataSO <- data.frame(id = c(1:6), 
HH_sten = c(6,4,8,6,3,2), 
EM_sten = c(8,8,4,3,2,6), 
EX_sten = c(3,9,7,8,4,4), 
AG_sten = c(3,5,5,3,7,7), 
CS_sten = c(7,4,10,8,3,2), 
OP_sten = c(5,7,4,5,4,8))
...