首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想在for循环代码中使用列表。list[[i]]工作得很好,但是为什么res <- vector("list",n)不能工作呢?

我想在for循环代码中使用列表。list[[i]]工作得很好,但是为什么res <- vector("list",n)不能工作呢?
EN

Stack Overflow用户
提问于 2018-06-10 00:12:05
回答 1查看 36关注 0票数 0

我使用for loop遍历两个不同的矩阵。代码如下所示:

代码语言:javascript
运行
复制
x <- matrix(rnorm(1806),7,258)
x2 <- matrix(rnorm(1032),4,258)

samp_size <- 3
iter <- 1000
subs <- matrix(sample(1:nrow(x), samp_size*iter, replace=T),
               ncol=samp_size, byrow=T)
subs2 <- matrix(sample(1:nrow(x2), samp_size*iter, replace=T),
                ncol=samp_size, byrow=T)

for(j in 1:nrow(subs)){
  ad <- x[subs[j,],]
  ad1 <- x2[subs2[j,],]
  rd <- rbind(ad,ad1)
  dis <- dist(rd, method="euclidian")
  #CV <- sd(unlist(rd), na.rm=TRUE)/mean(unlist(rd), na.rm=TRUE)*100
  dis2 <- dis[dis!=0]
  list[[j]] <- mean(dis2)
  l <- unlist(list)
  l <- na.omit(l)
  sdis <- dist(ad, method="euclidian")
  sdis2 <- sdis[sdis!=0]
  res <- vector("list", 1000)
  res[[j]] <- mean(sdis2)
  l2 <- unlist(res)
  l2 <- na.omit(l2)
}

list[[j]]运行得很好。

每次迭代的结果将根据j的值作为列表元素添加到其中。

然而,res[[j]]最终充满了NULL,只有最后一个元素包含一个值。

我不确定这里发生了什么。我希望res[[j]]的行为和list[[j]]一样。

非常感谢您的帮助。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50776185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档