Ошибка преобразования и экспорта результата tbl_df в xlsx в R

#r

Вопрос:

Я сделал корреляцию некоторых переменных, однако при экспорте результатов я получил ошибку, потому что вместо экспорта результатов корреляции функция возвращает исходные данные.фрейм.

     library(ggplot2)
    library(dplyr)
    library(corrplot)
    library(writexl)
    
    veg<-c(1,2,3,2.3,4.1)
    wet<-c(2,2.3,1.9,2.5,2.2)
    dry<-c(5,5.1,6.9,4.3,5.3)
    water<-c(0.69,0.75,0.81,0.82,0.82)
    coli<-c(10,11,12,13,9.7)
    OD<-c(1,3,2.5,2.7,1.8)
    DBO<-c(7,8,9,6.5,8)
    DQO<-c(3.5,4,4.1,3,2)
     
    data_land<-data.frame(veg, wet, dry, water, OD, DBO, DQO)
    
    library(corrr)

    data_land%>%
correlate(method = "spearman")%>%
focus(veg:water)
    
    write_xlsx(data_land, "D:/01-Mestrado/0Dissertacacao/1Rstudio/felipe2/112.xlsx")
 

но когда я открываю результат, я вижу, что это те же data_land значения, а не корреляции

введите описание изображения здесь

Ответ №1:

Вы можете назначить свои корреляции обратно data_land , чтобы они были в этом объекте. Тогда сохранение xlsx должно сработать. Попробуйте добавить -> data_land после вызова focus :

 data_land %>%
  correlate(method = "spearman")%>%
  focus(veg:water) -> data_land

write_xlsx(data_land, "D:/01-Mestrado/0Dissertacacao/1Rstudio/felipe2/112.xlsx")
 

Комментарии:

1. Уэсли оператор присваивания -> (если вы начинаете с data_land = data_land %>% ... , вы можете использовать знак равенства, хотя это не рекомендуется) сохраняет измененный объект, который вы создаете с помощью вызовов функций (т. е. correlate() и focus() ). Назначая его тому же имени переменной, вы, строго говоря, перезаписываете его. Таким образом, если вы никогда не выполняете это задание, исходный data_land объект остается неизменным. Это то, что вы изначально написали.