Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.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
R 使用Lappy查找多个数据帧的单个平均值-错误维度数不正确_R_Quantmod - Fatal编程技术网

R 使用Lappy查找多个数据帧的单个平均值-错误维度数不正确

R 使用Lappy查找多个数据帧的单个平均值-错误维度数不正确,r,quantmod,R,Quantmod,我有多个数据框,其中包含以下形式的股市数据: Open High Low Close Volume 我试图获得每只股票最后一行的平均值(在给定的时间段内),并将它们合并到一个数据框中,如下所示: Name SMA StockA 15.1 StockB 34.44 我有一个简单的函数,可以计算平均值并正确设置格式。当我在单个股票(dataframe)上运行它时,它就工作了。但是,当我尝试使用lappy将函数应用于所有数据帧的列表时,我得到了错误: x[,Close]中的错误:维度数不正确 符号

我有多个数据框,其中包含以下形式的股市数据:

Open High Low Close Volume
我试图获得每只股票最后一行的平均值(在给定的时间段内),并将它们合并到一个数据框中,如下所示:

Name SMA
StockA 15.1
StockB 34.44
我有一个简单的函数,可以计算平均值并正确设置格式。当我在单个股票(dataframe)上运行它时,它就工作了。但是,当我尝试使用lappy将函数应用于所有数据帧的列表时,我得到了错误:

x[,Close]中的错误:维度数不正确

符号是所有库存数据帧的列表

任何帮助都将不胜感激

require(TTR)
require(quantmod)

symbols <- c("XLF", "XLK", "XLU", "XLE", "XLP", "XLF", "XLB", "XLV", "XLY")
getSymbols(symbols, src='yahoo', from = '2016-01-01')

fun1<-function(x,Close) {
  mean1<-SMA(x[,Close],5)
  mean2<-tail(mean1,1)
  df_name<-deparse(substitute(x))
  print(mean2,paste(df_name))
}

df<-lapply(symbols,fun1)
final_df <- do.call(rbind, df)
require(TTR)
需要(quantmod)

符号问题似乎在于,在合并/合并数据帧之前,我获取了运行移动平均值(SMA)的最后一个值(尾部),并在函数中添加了名称。如果这一切都是在数据帧被合并之后完成的,那么它似乎可以工作

require(TTR)
require(quantmod)

symbols <- c("XLF", "XLK", "XLU", "XLE", "XLP", "XLF", "XLB", "XLV", "XLY")

StartDate = '2016-01-01'

Stocks = lapply(symbols, function(sym, column) {
  SMA(na.omit(getSymbols(sym, from=StartDate, auto.assign=FALSE))[,4],5)
})

test<-do.call(merge, Stocks)
test2<-tail(test,1)
test3<-t(test2)
rownames(test3)<-symbols
colnames(test3)<-"SMA"
View(test3)
require(TTR)
需要(quantmod)

符号问题似乎在于,在合并/合并数据帧之前,我获取了运行移动平均值(SMA)的最后一个值(尾部),并在函数中添加了名称。如果这一切都是在数据帧被合并之后完成的,那么它似乎可以工作

require(TTR)
require(quantmod)

symbols <- c("XLF", "XLK", "XLU", "XLE", "XLP", "XLF", "XLB", "XLV", "XLY")

StartDate = '2016-01-01'

Stocks = lapply(symbols, function(sym, column) {
  SMA(na.omit(getSymbols(sym, from=StartDate, auto.assign=FALSE))[,4],5)
})

test<-do.call(merge, Stocks)
test2<-tail(test,1)
test3<-t(test2)
rownames(test3)<-symbols
colnames(test3)<-"SMA"
View(test3)
require(TTR)
需要(quantmod)

符号请显示一个可复制的示例。关于每只股票最后一行的平均值,您是否打算从每个数据集中提取每只股票的最后一行,然后按股票进行平均?是的@akrun,这只是按股票进行的平均值,然后第二次提取。我会更新这个例子,这样它可以被复制。谢谢,也请提及使用的软件包。希望新的例子是清楚的。谢谢@akrun谢谢@akrun这帮我找到了问题所在。非常感谢。请展示一个可复制的示例。关于每只股票最后一行的平均值,您是否打算从每个数据集中提取每只股票的最后一行,然后按股票进行平均?是的@akrun,这只是按股票进行的平均值,然后第二次提取。我会更新这个例子,这样它可以被复制。谢谢,也请提及使用的软件包。希望新的例子是清楚的。谢谢@akrun谢谢@akrun这帮我找到了问题所在。非常感谢。