library(dtplyr)
library(xlsx)
library(lubridate)
'data.frame': 612 obs. of 7 variables:
$ Company : Factor w/ 10 levels "Harbor","HCG",..: 6 10 10 3 6 8 6 8 6 6 ...
$ Title : chr NA NA NA NA ...
$ Send.Offer.Letter :Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 612 obs. of 1 variable:
..$ Send Offer Letter: Date, format: NA NA NA NA ...
..- attr(*, "spec")=List of 2
.. ..$ cols :List of 1
.. .. ..$ Send Offer Letter: list()
.. .. .. ..- attr(*, "class")= chr "collector_character" "collector"
.. ..$ default: list()
.. .. ..- attr(*, "class")= chr "collector_guess" "collector"
.. ..- attr(*, "class")= chr "col_spec"
$ Accepted.Position : chr NA NA NA NA ...
$ Application.Date : chr NA NA NA NA ...
$ Hire.Date..Start. :Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 612 obs. of 1 variable:
..$ Hire Date (Start): POSIXct, format: "2008-05-20" NA NA "2008-05-13" ...
$ Rehire..Yes.or.No.: Factor w/ 23 levels "??","36500","continuing intern",..: NA NA NA NA NA NA NA NA NA NA ...
我有一个非常凌乱的数据集(它完全是在excel电子表格上自由输入)关于新员工。与日期相关的变量当然会让事情变得困难。条目格式没有一致性,有时随机字符串是日期的一部分(想想5/17,日tbd)等等。我终于将日期格式化为POSIXct格式,但它导致了上面你看到的奇怪情况看来我的列中有嵌套变量。我已经将两个日期变量强制转换为as.character($ Accepted.Position和$ Application.Date),因为我已经看到了POSIXct日期格式化导致write.xlsx出现问题的示例。
当我尝试写入xlsx时,我得到以下内容:
write.xlsx(forstack, file = "forstackover.xlsx", col.names = TRUE)
Error in .jcall(cell, "V", "setCellValue", value) :
method setCellValue with signature ([D)V not found
In addition: There were 50 or more warnings (use warnings() to see the first 50)
我的输入太长了,无法发布到此处,所以这里是它的pastebin: Dput forstack
尝试强制$ Hire.Date ..使用as.character启动会产生奇怪的结果,我已将其部分粘贴在此处: as.character result
我不确定采取什么行动。我在这里找到了类似的讨论: stack question similar to this one
但是这个用户试图调用ggplot2图形的列的特定部分。任何帮助表示赞赏。
答案 0 :(得分:1)
我同意@greg dubrow 的解决方案。我有一个更简单的建议作为代码。
write.xlsx(as.data.frame(forstack), file = "forstackover.xlsx", col.names = TRUE)
file.choose()
write.xlsx(as.data.frame(forstack), file = file.choose(), col.names = TRUE)
顺便说一下,在我的代码中,类似于@Lee 的,它给出了 row.names = FALSE
的错误。错误现已解决。如果我们再扩展一点:
write.xlsx(as.data.frame(forstack), file = file.choose(), col.names = TRUE, row.names=FALSE)
答案 1 :(得分:0)
尝试使用xlsx软件包将小写的tbl_df写入xlsx时遇到了这个问题。
我添加了row.names = FALSE
选项时抛出了错误,但是没有row.names call
时没有错误。
我将tbl_df
转换为data.frame
,并且有效。