[英]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.