gpt4 book ai didi

r - 在 R 中的循环中创建一个列表对象

转载 作者:行者123 更新时间:2023-12-04 09:15:48 25 4
gpt4 key购买 nike

我正在尝试在循环中创建点模式 ppp.object {spatstat} 列表。
我的数据集如下所示:

> names(OT1);head(OT1);dim(OT1)
[1] "EID" "latitude" "longitude" "month" "year" "CPUE" "TSUM"
[8] "fTSUM"
EID latitude longitude month year CPUE TSUM fTSUM
1 167-1-1996-1135 67.70000 -61.81667 9 1996 0 0 F
2 167-10-1996-1135 67.71667 -59.18333 9 1996 0 0 F
3 167-100-1996-1135 67.86667 -59.43333 10 1996 0 0 F
4 167-101-1996-1135 67.95000 -59.58333 10 1996 0 0 F
5 167-102-1996-1135 68.10000 -59.76667 10 1996 0 0 F
6 167-103-1996-1135 67.81667 -59.38333 10 1996 0 0 F
[1] 2707 8

我想做的是为我的每个月选择数据并创建一个 ppp.object。
> sort(unique(OT1$month))
[1] 7 8 9 10 11 12

以下循环有效,我可以看到我的每个数字:
for(i in sort(unique(OT1$month))){ 
a<-OT1[OT1$month==i,]
b<-ppp(a$longitude,a$latitude,marks=a$fTSUM,window=newW)
plot(b,main=i)
}

我想创建一个我可以单独访问的所有 ppp.object 的列表,我尝试在循环命令中添加一个 list() 但没有任何成功......任何帮助将不胜感激!

谢谢!

最佳答案

这似乎很适合 lapply :

pppList <- lapply(sort(unique(OT1$month)), function(i) {
a<-OT1[OT1$month==i,]
ppp(a$longitude,a$latitude,marks=a$fTSUM,window=newW)
})

...但只是为了解释如何修复你的 for 循环:

您需要有一个要分配给的列表。创建一个正确的长度对于性能来说总是一个好主意:
x <- sort(unique(OT1$month))
pppList <- vector('list', length(x))
for(i in x) {
a<-OT1[OT1$month==i,]
b<-ppp(a$longitude,a$latitude,marks=a$fTSUM,window=newW)
pppList[[i]] <- b
plot(b,main=i)
}

关于r - 在 R 中的循环中创建一个列表对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9636809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com