在数据帧的列中应用函数的正确方法是什么?
我有一些类似于以下的数据:
我想计算每列的简单移动平均值.我可以使用lapply
但它将数据作为列表,如果可能的话,我想创建新列或新数据帧.
我已经尝试过sapply
,mapply
等.
数据:
require(quantmod)
require(PerformanceAnalytics)
library(data.table)
from <- "2017-01-01"
to <- "2018-12-01"
symbols <- c('GOOG', 'MSFT', 'AAPL')
dataEnv <- new.env()
getSymbols(symbols, from=from, to = to, src = "yahoo", adjust = TRUE, env = dataEnv)
data <- do.call(merge, eapply(dataEnv, Ad))
colnames(data) <- gsub(".Adjusted", "", colnames(data))
x <- lapply(data, function(x) SMA(x, n = 10))
例如,这会创建一个新列:
data$googleSMA <- SMA(data$GOOG)