是否可以在R中的向量中转换data.frame

时间:2016-07-21 14:08:23

标签: r dataframe time-series

我有19个数据帧。每个data.frame行包含一个观察,每列包含一个变量。我想连续转换19个data.frame中的每一个以获得时间系列。

obs <- LETTERS[1:3]
Var1 <- (2:4)
Var2 <- (9:7)

April2014 <- data.frame(obs, Var1, Var2)

TimeSerie.April2014 <- data.frame(OBS = "2014/04/01",
                                  AVar1 = April2014[1,2],
                                  AVar2 = April2014[1,3],
                                  BVar1 = April2014[2,2],
                                  BVar1 = April2014[2,3],
                                  CVar1 = April2014[3,2],
                                  CVar2 = April2014[3,3])

这是一个更简单的例子,我想从2014年4月开始到TimeSeries.April2014,所以我可以加入19个时期的每一个以获得时间系列。

P.S。对不起我的问题的原始形式,这是我的第一个堆栈溢出问题。如果您对配方有任何提示,请不要犹豫,分享。

2 个答案:

答案 0 :(得分:1)

对于每个数据框dat,您可以使用

as.numeric(t(dat[,-1]))

获取你想要的矢量。如果您有19个数据框,则应重复此19次。如果您的所有数据框都在大型列表large_list中,那么使用sapply将为您完成所有工作:

t(sapply(large_list, function (dat) as.numeric(t(dat[,-1]))))

答案 1 :(得分:1)

是否需要使用obs中的字母?如果您只想读取行中的数字并将它们放在一个长向量中,这可能是一个简短的答案,可以很好地扩展到更大的数据集:

Var1 <- (2:4)
Var2 <- (9:7)
April2014 <- data.frame(Var1, Var2)

result <- unlist(data.frame(t(April2014)))
print(result)