繁体   English   中英

如何将结果保存到R中的空向量中?

[英]How to save results into a empty vector in R?

我在R中创建一个空向量并将另一个向量的结果保存到它们中时遇到问题。 这是我的代码:

k<-vector(mode = "numeric", length = 0)
for (j in length(Pe)){
  if ((Pe[j])>0) {
    k[j]<-Pe[j]
  }
}

向量Pe的长度是1000。我只需要在向量k中保存Mayor值,而不是零,但是当我键入向量k时,显示窗口将显示:

numerical(0)

这是在R(k)中启动空向量的正确方法吗?

谢谢

实际上,它可以容易得多。 类型

 k <- c()

代替。 但是我认为这不会满足您的需求。

当元素p不大于0时会发生什么? R会用NA填充k [p],而我想您想让k是一个仅包含大于0的Pe元素的较短向量,而不是相同的长度,而是使用NA?

如果是这样,您甚至不需要循环。 尝试

k <- Pe[Pe > 0]

这将为您提供一个仅包含Pe> 0的元素而没有NA的向量。

对不起,我的英语不好,希望我能对您有所帮助

正如MaxPD所指出的

for (j in length(Pe)) print(j)

只会打印Pe的长度,您应该

for (j in seq_len(length(Pe))) print(j)
## or
for (j in seq_along(Pe)) print(j)
## or
for (j in 1:length(Pe)) print(j)

但在您的情况下,我什至不使用循环

k<-vector(mode = "numeric", length = 0)
k[Pe > 0] <- Pe[Pe > 0]

如果两个对象都是向量并且具有相同的长度,就应该做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM