r - 如何处理 “write.xlsx”错误: arguments imply differing number of rows

标签 r dataframe error-handling r-xlsx

我正在尝试从我创建的数据帧列表中写入一个xlsx文件,但是由于缺少数据而导致出现错误(我无法下载)。除了缺少数据外,我只想编写xlsx文件。任何帮助表示赞赏。

对于问题的复制:

library(quantmod)

name_of_symbols <- c("AKER","YECO","SNOA")
research_dates <- c("2018-11-19","2018-11-19","2018-11-14")
my_symbols_df <- lapply(name_of_symbols, function(x) tryCatch(getSymbols(x, auto.assign = FALSE),error = function(e) { }))
my_stocks_OHLCV <- list()
for (i in 1:3) {
    trade_date <- paste(as.Date(research_dates[i]))
    OHLCV_data <- my_symbols_df[[i]][trade_date]
    my_stocks_OHLCV[[i]] <- data.frame(OHLCV_data)
}

而且您可以在my_stocks_OHLCV[[2]]中看到丢失的数据,而我收到的write.xlsx错误:
print(my_stocks_OHLCV)
[[1]]
           AKER.Open AKER.High AKER.Low AKER.Close AKER.Volume AKER.Adjusted
2018-11-19      2.67       3.2     1.56       1.75    15385800          1.75

[[2]]
data frame with 0 columns and 0 rows

[[3]]
           SNOA.Open SNOA.High SNOA.Low SNOA.Close SNOA.Volume SNOA.Adjusted
2018-11-14       1.1      1.14     1.01        1.1      107900           1.1

write.xlsx(my_stocks_OHLCV, "C:/Users/MICRO/Downloads/Datasets_stocks/dux_OHLCV.xlsx")

 Error in (function (..., row.names = NULL, check.rows = FALSE,
 check.names = TRUE,:arguments imply differing number of rows: 1, 0


即使我丢失了数据,如何运行write.xlsx?

最佳答案

您需要问的主要问题是,您想要什么?

在处理库存数据时,最好的想法是,如果没有库存数据,则将其删除。这样的事情应该起作用,

 my_stocks_OHLCV[lapply(my_stocks_OHLCV,nrow)>0]

如果您想要一行充满NA0然后使用lapply函数,对于列表中长度为0的每个元素,请替换为NA的 vector ,0的 vector (c(0,0,0,0,0,0))等。

像这样
condition <- !lapply(my_stocks_OHLCV,nrow)>0
my_stocks_OHLCV[condition] <- data.frame(rep(NA,6))

在这里,我们将条件变量定义为列表中没有任何数据的元素。然后,我们可以将这些替换为NA或将NA替换为0。但是,我想不出这样做的理由。

您的问题的一种变体(可以在for循环内处理)是检查是否有数据,如果没有,则用NA替换那里的值,并为它提供正确的 header ,例如你知道它涉及哪只股票。

希望这可以帮助。

关于r - 如何处理 “write.xlsx”错误: arguments imply differing number of rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56009229/

相关文章:

为一列中的值 reshape 数据

string - 'format'的错误参数#3(预期字符串, bool 值)?

ruby - 如何处理 mongodb 在 ruby​​ 中的 E11000 重复键错误

r - 使用dplyr软件包按组计算均值

在 R 中重新采样(折叠)以进行交叉验证

python - 同时将 Pandas 函数应用于行和列以进行置信区间计算

php - 你能在它杀死脚本之前捕获超出分配的内存错误吗?

r - 范围联接data.frames-R中的日期范围/间隔的特定日期列

r - 当我的 dockerized Shiny 应用程序不起作用时如何查找错误日志

r - 在 r 中保持组元素从第一个非缺失开始直到最后一个