您好,我有一個大資料框,我按照下一個代碼對其進行拆分:
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)
有沒有辦法讓腳本的第二部分(創建情節)在代碼的第一部分中創建的每個獨特物種/資料框的回圈中?
歡迎任何幫助。
提前致謝!
uj5u.com熱心網友回復:
我將演示使用iris.
irisL <- split(iris, iris$Species)
names(irisL)
# [1] "setosa" "versicolor" "virginica"
par(mfrow = c(2, 2))
for (nm in names(irisL)) {
plot(Sepal.Length ~ Sepal.Width, data=irisL[[nm]], main=nm)
}

如果您的框架串列未命名,那么您可以通過以下方式索引:
for (ind in seq_along(irisL)) {
# ...
}
盡管您需要一種直接的方法來推斷名稱(也許as.character(irisL[[ind]]$Species[1]))。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333113.html
