आर

2015-12-23 6 views
12

में XLSX पैकेज का उपयोग करके एक्सेल में डेटा.फ्रेम प्रिंट करने में त्रुटि डेटाफ्रेम किसी भी त्रुटि के साथ दिखाई दे रहा है। लेकिन जब पैकेज XLSX के write.xlsx फ्यूक्शनक्शन का उपयोग करके मुद्रित किया जाता है, तो यह त्रुटि देता है।आर

Error in .jcall(cell, "V", "setCellValue", value) : 
    method setCellValue with signature ([D)V not found. 

data.frame की dput लगता है:

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) 

कृपया इस त्रुटि को हल करने में मदद करते हैं।

+0

को हल करने के लिए प्रतीत होता है "जब आप write.xlsx फ़ंक्शन का उपयोग करके मुद्रित होते हैं" का क्या मतलब है? क्या आप 'प्रिंट (write.xlsx (...)) कर रहे हैं? या त्रुटि है जब आप 'write.xlsx (...)' कहते हैं? क्या आप एक पुनरुत्पादित उदाहरण प्रदान कर सकते हैं? –

+0

आउटपुट का उपयोग करके मुद्रित किया जाता है: write.xlsx (q1, file = paste0 (फ़ाइल पता "," _ 6 "," xlsx "), शीटनाम =" शीट 1 ", col.names = TRUE, row.names = FALSE, append = TRUE) –

+0

क्या आप एक [पुन: उत्पादित उदाहरण] प्रदान कर सकते हैं (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? इसके अलावा, आपका "डेटा का डेटा। फ्रेम "ऐसा कुछ नहीं दिखता है जो 'dput (my.dataframe)' उत्पन्न करेगा, क्या आप 'वर्ग (my.dataframe)' देख सकते हैं और पुष्टि कर सकते हैं कि (केवल) वर्ग" data.frame "है? –

उत्तर

25

फिर भी कोई प्रतिलिपि प्रस्तुत करने योग्य उदाहरण है, लेकिन से अपने class(q1) ऐसा लगता है कि q1 एक tbl_df (dataframe कि dplyr पैकेज का उत्पादन की तरह) जबकि write.xlsx है एक data.frame की उम्मीद है।

write.xlsx एक सादा data.frame देने की कोशिश करें क्योंकि यह अपेक्षा करता है। जैसे

write.xlsx(as.data.frame(q1), ...) 

यहाँ एक reproducible example (अर्थात आपने सकता है यह अपने अनुसंधान सत्र में कॉपी-पेस्ट बग + ठीक पुन: पेश करने के लिए)।

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. 

अब लगता है कि write.xlsx एक data.frame, नहीं एक tbl_df हो जाता है बनाने के द्वारा इसे ठीक करने की कोशिश करते हैं!

write.xlsx(as.data.frame(iris2), file='test.xlsx', sheetName="Sheet1", col.names=TRUE, row.names=FALSE, append=TRUE) 
# huzzah! 
1

ऐसा लगता है कि पहले कॉलम (टाइमस्टैम्प) की तिथि/समय प्रारूप के साथ एक बग है। यदि आप पहले कॉलम को चरित्र में परिवर्तित करते हैं, तो इसे काम करना चाहिए। तो, आप

q1[,1] <- as.character(q1[,1]) 

करने के लिए अपने पहले कॉलम बदल कर फिर से कोशिश कर सकते हैं ...

0

मैं ऐसा होता है जब dplyr साथ चर समूहीकरण पाते हैं। यदि आप%>% ungroup() के साथ एक श्रृंखला समाप्त करते हैं तो यह