数据框列表到绘图列表; for 循环,lapply
list of dataframes to a list of plots; for loops, lapply
我在 Rlist
中有一个数据帧列表:
Rlist = lapply(1:5,function(i){
data.frame(Frame_times = seq(0,1,length.out=100),L1=runif(100), L2 = runif(100), L3 = runif(100))
})
names(Rlist) = letters[1:5]
如您所见,有一个包含 5 个数据帧的列表。在每个数据框中,有三个列,分别称为 L1
、L2
和 L3
。我想使用每个数据框中的这三列来创建图(特别是光谱分析图),并且我想使用循环系统地执行此操作。
下面的无效代码尝试执行以下操作:使用 Rlist
中每个数据框中感兴趣的三列创建绘图,并将它们放入名为 aplotfinal
的新列表中。最后,我应该有一个列表列表,其中包含名为 aplotfinal
的图,总共有 15 个图,但更具体地说,5 个列表,每个列表有 3 个图。
aplotfinal <- lapply(1:length(Rlist),function(i){
a <- Rlist[[i]][,-1]
for(t in colnames(a)){
del <- 0.016667
x.spec <- spectrum(a$t, log = "no", plot = FALSE)
spx <- x.spec$freq/del
spy <- 2*x.spec$spec
aplotfinal[[i]] <- qplot(y = spy,x=spx,geom="line") +
ggtitle(names(Rlist)[i]) +
xlab("frequency")+ylab("spectral density")
}
})
希望这是有道理的。谢谢!
以下代码是问题的更正代码。它输出一个包含 5 个成员的列表,每个成员包含 3 个图。
aplotfinal <- lapply(1:length(Rlist),function(i){
a <- Rlist[[i]][,-1]
lapply(colnames(a), function(t){
del <- 0.016667
x.spec <- spectrum(a[[t]], log = "no", plot = FALSE)
spx <- x.spec$freq/del
spy <- 2*x.spec$spec
qplot(y = spy,x=spx,geom="line") +
ggtitle(names(Rlist)[i]) +
xlab("frequency")+ylab("spectral density")
})
})
查看第一个子列表的第一个图:
aplotfinal[[1]][[1]]
我在 Rlist
中有一个数据帧列表:
Rlist = lapply(1:5,function(i){
data.frame(Frame_times = seq(0,1,length.out=100),L1=runif(100), L2 = runif(100), L3 = runif(100))
})
names(Rlist) = letters[1:5]
如您所见,有一个包含 5 个数据帧的列表。在每个数据框中,有三个列,分别称为 L1
、L2
和 L3
。我想使用每个数据框中的这三列来创建图(特别是光谱分析图),并且我想使用循环系统地执行此操作。
下面的无效代码尝试执行以下操作:使用 Rlist
中每个数据框中感兴趣的三列创建绘图,并将它们放入名为 aplotfinal
的新列表中。最后,我应该有一个列表列表,其中包含名为 aplotfinal
的图,总共有 15 个图,但更具体地说,5 个列表,每个列表有 3 个图。
aplotfinal <- lapply(1:length(Rlist),function(i){
a <- Rlist[[i]][,-1]
for(t in colnames(a)){
del <- 0.016667
x.spec <- spectrum(a$t, log = "no", plot = FALSE)
spx <- x.spec$freq/del
spy <- 2*x.spec$spec
aplotfinal[[i]] <- qplot(y = spy,x=spx,geom="line") +
ggtitle(names(Rlist)[i]) +
xlab("frequency")+ylab("spectral density")
}
})
希望这是有道理的。谢谢!
以下代码是问题的更正代码。它输出一个包含 5 个成员的列表,每个成员包含 3 个图。
aplotfinal <- lapply(1:length(Rlist),function(i){
a <- Rlist[[i]][,-1]
lapply(colnames(a), function(t){
del <- 0.016667
x.spec <- spectrum(a[[t]], log = "no", plot = FALSE)
spx <- x.spec$freq/del
spy <- 2*x.spec$spec
qplot(y = spy,x=spx,geom="line") +
ggtitle(names(Rlist)[i]) +
xlab("frequency")+ylab("spectral density")
})
})
查看第一个子列表的第一个图:
aplotfinal[[1]][[1]]