La trame de données est visible sans aucune erreur. Mais quand le même est imprimé en utilisant la fonction write.xlsx du paquet XLSX, cela donne l'erreur.
Error in .jcall(cell, "V", "setCellValue", value) :
method setCellValue with signature ([D)V not found.
La sortie du data.frame ressemble à:
Timestamp qs pqs logqs es p_imp dep r_dep agg_rtn
(time) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)
1 2015-05-04 09:29:59 0.05788732 0.0007478696 0.0007478545 0.09633803 -0.0446830986 3533.518 274079.9 -0.0006432937
2 2015-05-04 10:00:00 0.04948394 0.0006362707 0.0006362707 0.07586009 0.0088016055 2416.431 187953.1 0.0000000000
3 2015-05-04 10:30:00 0.05554795 0.0007142532 0.0007142532 0.06417808 -0.0002739726 3245.574 252422.0 0.0000000000
4 2015-05-04 10:59:59 0.04863014 0.0006194244 0.0006194244 0.08434442 0.0024951076 3563.401 279503.9 0.0000000000
5 2015-05-04 11:30:00 0.05761986 0.0007319037 0.0007319037 0.07851027 0.0154965753 2010.943 158429.1 -0.0006339144
6 2015-05-04 12:00:00 0.04957627 0.0006285051 0.0006285051 0.07025424 0.0070762712 1819.908 143546.0 0.0000000000
Variables not shown: vol_30_sum (dbl), vol_30_mean (dbl), p_return_sqr (dbl), p_return_mean (dbl), Lim_or_out (dbl),
closing_price (dbl), closing_vol (dbl)
Veuillez aider à résoudre cette erreur.
Toujours pas d'exemple reproductible, mais à partir de votre class(q1)
il semble que q1
est un tbl_df
(le type de trame de données que le package dplyr
produit) tandis que write.xlsx
attend un data.frame
.
Essayez de donner write.xlsx
une plaine data.frame
comme il s'y attend. par exemple.
write.xlsx(as.data.frame(q1), ...)
Voici un exemple reproductible (c'est-à-dire que vous pouvez le copier-coller dans votre session R pour reproduire le bug + le correctif).
library(dplyr)
iris2 <- tbl_df(iris)
class(iris2) # like yours
# [1] "tbl_df" "tbl" "data.frame"
# Now let's try to write to XLSX using command as mentioned in your comments
library(xlsx)
write.xlsx(iris2, file='test.xlsx', sheetName="Sheet1", col.names=TRUE, row.names=FALSE, append=TRUE)
# Error in .jcall(cell, "V", "setCellValue", value) :
# method setCellValue with signature ([D)V not found
# In addition: Warning message:
# In if (is.na(value)) { :
# the condition has length > 1 and only the first element will be used
# ^--- we can reproduce your error. This is the point of a reproducible example, so we can see if our fixes work for you.
Essayons maintenant de le corriger en nous assurant que write.xlsx obtient un data.frame, pas un tbl_df!
write.xlsx(as.data.frame(iris2), file='test.xlsx', sheetName="Sheet1", col.names=TRUE, row.names=FALSE, append=TRUE)
# huzzah!
Je trouve que cela se produit lors du regroupement des variables avec dplyr. Si vous terminez une chaîne avec%>% ungroup (), il semble résoudre
Il semble qu'il y ait un bug avec le format Date/Heure de la première colonne (Horodatage). Si vous convertissez la première colonne en caractère, cela devrait fonctionner. Vous pouvez donc modifier votre première colonne en
q1[,1] <- as.character(q1[,1])
et essayez à nouveau...