0

我正在尝试运行这样的循环函数:

x <- c(1,2,3,4,7,8,9,10,13,14,15,16,19,20,22,23,24,26) 
n<-rep(NA,length(x))
for (ii in 1:length(x)){
  n[ii]<-subset(dat1, Plot==ii)
}

但是,出现了错误消息:

There were 18 warnings (use warnings() to see them)

我正在寻找的输出是来自 main data 的 18 个单独的数据 n1,n2,n3,n4,n7,...n24&n26 子集dat1

4

2 回答 2

2

我在理解你想要做什么时遇到了一点麻烦,但是如果你有一个 vector dat1,并且你想形成一个n包含 的第一个、第二个、...、第 26 个元素的新向量,dat1那么在R.尝试:

> dat1 <- 1:60
> x <- c(1,2,3,4,7,8,9,10,13,14,15,16,19,20,22,23,24,26)
> n <- dat1[x]
> n
 [1]  1  2  3  4  7  8  9 10 13 14 15 16 19 20 22 23 24 26
于 2013-07-03T20:32:32.593 回答
1

如果您要做的是创建一个 data.frames 的“向量”,每个都对应于Plot变量的某个级别,那么您应该使用 a list,而不是 a vector

x <- c(1,2,3,4,7,8,9,10,13,14,15,16,19,20,22,23,24,26) 
n <- list()
length(n) <- length(x)

for (ii in 1:length(x)){
  n[[ii]] <- subset(dat1, Plot==ii)
}
于 2013-07-03T20:44:29.220 回答