我试图从data.frame的价格计算回报。
diff((na.locf(precos_mes))
有些列有NAs作为值,所以要删除它们我使用locf函数,但是当我对它应用diff时,它会返回以下错误:
(list) object cannot be coerced to type 'double'
当我尝试取消列表时,我会丢失每个库存载体中的所有信息。
diff(as.numeric(unlist(na.locf(prices))))
答案 0 :(得分:2)
尝试
lapply(precos_mes, function(x) diff(na.locf(x)))
或者,如果您不需要删除开头的NA
值
sapply(precos_mes, function(x) diff(na.locf(x, na.rm=FALSE)))
set.seed(24)
precos_mes <- as.data.frame(matrix(sample(c(NA,0:4), 20*5,
replace=TRUE), ncol=5))