我有这样一个清单:转换在数据帧中的列表中的所有列,以时间序列
df1 <- data.frame(var1 = 1:5, var2 = 6:10)
rownames(df1) <- 2001:2005
df2 <- data.frame(var5 = 21:25, var6 = 26:30)
rownames(df2) <- 2006:2010
mylist <- list(df1,df2)
> mylist
[[1]]
var1 var2
2001 1 6
2002 2 7
2003 3 8
2004 4 9
2005 5 10
[[2]]
var5 var6
2006 21 26
2007 22 27
2008 23 28
2009 24 29
2010 25 30
如何可以将每个数据帧的时间序列,其中起始和结束中每列由分钟给出和各个数据帧的rownames的最大值?
我想:
lapply(mylist, function(x) {apply(x, 2, function(y) ts(y, start = min(rownames(y), end = max(rownames(y)))))})
导致:
Error in if (nobs != ndata) data <- if (NCOL(data) == 1) { :
missing value where TRUE/FALSE needed
,但未能作出的任何意义。
我想你忘记后'开始=分钟(rownames(Y)'关闭托架。 尝试'lapply(MYLIST,函数(X){申请(x,2,function(y)ts(y,start = min(rownames(y)),end = max(rownames(y))))})'。 我不确定,但可能在'max'和'min'函数中,你应该使用'as.numeric(rownames(y))'。因为'rownames(y)'会给你一些字符串,而R无法计算字符串的最小或最大值。 – Smich7