2012-03-27 60 views
1

我想做到这一点:哪种类型的对象用于为其分配几个s4类对象?

library(party) 

# cts <- ??? 

n <- c(50, 100, 116) 

for(i in 1:length(n)) { 
    data <- airq[1:n[i], ] 
    airct <- ctree(Ozone ~ ., data) 
    cts[i] <- airct 
    } 

..但不知道我可以使用分配ctree结果的对象类型。

感谢任何指针, 凯

回答

3

一个list通常是答案。

library(party) 
airq <- na.omit(airquality) # Prunes NA rows down to 111 rows... 

n <- c(50, 100, 111) # 116 is outside 
cts <- vector('list', length(n)) 

for(i in 1:length(n)) { 
    data <- airq[1:n[i], ] 
    airct <- ctree(Ozone ~ ., data) 
    cts[[i]] <- airct 
} 

但是更好的方法是在这里使用lapply(list-apply)。不需要for-loop并返回一个列表。

library(party) 
airq <- na.omit(airquality) # Prunes NA rows down to 111 rows... 
n <- c(50, 100, 111) # 116 is outside 
cts <- lapply(n, function(ni) ctree(Ozone ~ ., data=airq[1:ni,])) 
+0

当然!我想首先使用cts < - list(),但输入cts < - ls(),lol!无论如何,“ni”的用法是全新的 - 非常感谢,谢谢! – Kay 2012-03-27 21:17:02

相关问题