这可能是一个微不足道的问题,因为我只有几天使用R的经验,但基本上我想创建一个命名的数据框列表。我看过很多问题和答案只涉及2个数据框,例如
dataList <- list(x=data.frame1, y=data.frame2)
然而,我正在使用这个程序中的48个数据帧,并想知道一个更优雅的方法来创建48个元素的命名列表,而不实际明确命名我的所有48个数据帧(这是我目前的得到了):
dataList <- list(forecasted.data0=forecasted.data0, forecasted.data1=forecasted.data1, ...)
等等46次。
答案 0 :(得分:3)
使用names
或setNames
功能
> x <- as.list(rnorm(5))
> x
[[1]]
[1] -1.404512
[[2]]
[1] 0.927126
[[3]]
[1] 1.055555
[[4]]
[1] -1.718295
[[5]]
[1] 0.5154312
> names(x) <- paste0("forecasted.data.", seq(0, length(x) - 1))
> x
$forecasted.data.0
[1] -1.404512
$forecasted.data.1
[1] 0.927126
$forecasted.data.2
[1] 1.055555
$forecasted.data.3
[1] -1.718295
$forecasted.data.4
[1] 0.5154312
答案 1 :(得分:1)
这会有用吗?
forecasted.data0=data.frame(1)
forecasted.data1=data.frame(2)
n=ls()[grepl("^forecasted.data.*",ls())]
l=sapply(n, function(x) get(x))
names(l)=n
如果您愿意,可以用lapply替换sapply ......