我希望獲取代號並刪除那些包含缺失值的列。所以我開發了這個for循環,但我被卡住,因爲我得到保持錯誤,如下所示。我是R新手,所以如果能改進下面的for循環功能,我將不勝感激。謝謝:刪除包含NA的列
"Error in `==.default`(ETF_Adj_Data[columns], is.na(ETF_Adj_Data[, columns])) : non-conformable arrays"
install.packages("quantmod")
library(quantmod)
sDate <- as.Date("2009-01-01")
eDate <- as.Date("2014-12-31")
ticker_symbol <- c("FLS","G4S","TDC")
ETF_Data <- new.env()
getSymbols(ticker_symbol, env=ETF_Data, from=sDate, to=eDate)
# Extract the Adjusted column from all objects,
# then merge all columns into one object
ETF_Adj_Data <- do.call(merge, eapply(ETF_Data, Ad))
# then extract the monthly endpoints
Monthly_ETF_Adj_Data <- ETF_Adj_Data[endpoints(ETF_Adj_Data,'months')]
for (columns in ncol(ETF_Adj_Data)){
if (ETF_Adj_Data[columns]==is.na(ETF_Adj_Data[,columns])) {
ETF_Adj_Data[columns] <- ETF_Adj_Data[,columns, drop=T]}
else {
Monthly_ETF_Adj_Data[columns] <- ETF_Adj_Data[endpoints(ETF_Adj_Data,'months')]
}
}
也許'lapply(ETF_Adj_Data,函數(x)如果(任何(is.na(X )))endpoints(x,'months'))' – akrun
@Boro Dega我運行了你的代碼,'Monthly_ETF_Adj_Data'中的所有三列至少包含一個NA值。你可以檢查這個[其他問題](http://stackoverflow.com/questions/31730990/return-only-columns-containing-na-in-r/31731474#31731474) – mpalanco