Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理;write.xlsx“;错误:参数表示行数不同_R_Dataframe_Error Handling_R Xlsx - Fatal编程技术网

如何处理;write.xlsx“;错误:参数表示行数不同

如何处理;write.xlsx“;错误:参数表示行数不同,r,dataframe,error-handling,r-xlsx,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(n

我正试图从我创建的数据帧列表中编写一个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)
}

即使缺少这些数据,如何运行write.xlsx?

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

当您处理股票数据时,最好的办法是,如果您没有股票数据,请将其删除。这样应该行得通

 my_stocks_OHLCV[lapply(my_stocks_OHLCV,nrow)>0]
如果您想要一行充满
NA
0
然后使用
lappy
函数,对于长度为0的列表的每个元素,替换为
NA
,向量为0(
c(0,0,0,0,0)
)等

像这样的,

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

我的车[状况]回答得好!但是我该怎么做呢?“您想要一个空行吗?然后使用lappy函数,对于列表中长度为0的每个元素,替换为NA或0的向量(c(0,0,0,0,0,0))等等。”谢谢GooJ!非常感谢您抽出时间回答
 my_stocks_OHLCV[lapply(my_stocks_OHLCV,nrow)>0]
condition <- !lapply(my_stocks_OHLCV,nrow)>0
my_stocks_OHLCV[condition] <- data.frame(rep(NA,6))