【发布时间】:2021-12-09 08:02:12
【问题描述】:
你好,我有一个大数据框,我按照下一个代码拆分:
DF2 <- split(df, df$Species)
new_names <- as.character(unique(df$Species))
for (i in 1:length(DF2)) {
assign(new_names[i], DF2[[i]])
}
给我很多数据框,每个数据框都有相同的起始字母 DF2Fish-XX,其中 XX 是唯一的物种:
现在我想要一个循环函数来使用以下代码为每个物种(唯一数据框)创建多个图:
par(mfrow=c(2,2))
DF2Plot <- function(index){plot(DF2Fish-XX[,index] ~ DF2Fish-XX$Year,
main=names(DF2Fish-XX[index]), xlab= "Years",
ylab = "Trophic position", type="b", xlim=range(1930:2020), ylim=range(2:5))}
lapply(2:5, FUN= DF2Plot)
有没有办法让脚本的第二部分(创建情节)为在第一部分代码中创建的每个唯一物种/数据框循环?
欢迎任何帮助。
提前致谢!
【问题讨论】:
-
您应该尝试使用您创建的每个物种的数据框列表:
lapply(DF2, function(data) plot(y ~ x, data = data, main = unique(data$Species), ...)) -
如何使它们可见?每个物种分开;)
-
对于@rawr 的评论,请参阅stackoverflow.com/a/24376207/3358227,许多 使用帧列表中的数据的好例子。
-
您已经有了一个数据框列表,其中每个物种都是分开的,所以当您在
lapply中运行plot(...)时,您将获得每个物种的新图 -
我以后有没有办法单独提取它们?