繁体   English   中英

R中的嵌套循环-错误

[英]Nested loop in R - Error

我使用了一个表(23行),其中提取了2列(分别称为x和y),并将其命名为z = xy和w = xy。 我也有一个名为“ type”的列,其中包含2个变量“ buy”或“ sell”。

我有一个“ ifelse”语句,其中指出:If(type ==“ buy”,z,w)

因此,如果i = 1,类型=购买,我希望R返回z [[1]],即来自i = 1的第一个答案(对于i = 1,不是23个答案)。 但是,当我写下循环时,它为每个“ i”返回23个结果。 (即,对于i = 1,它为i = 1返回23个结果)。 我尝试使用[[i]]括号,但仍然没有结果。

for(i in 1:23)
{
  z[i]=y[i]-x[i]
  w[i]=x[i]-y[i]
  ifelse(type[i]=="buy", z[i], w[i])
}

没有for循环的代码:

z=y-x #buy
w=x-y #sell
ifelse(type=="buy",z, w)

有什么建议吗? 谢谢

问题是ifelse是矢量化的。 您需要使用

if(type[i] == buy) z[i] else w[i]

而不是for循环中的ifelse。 也就是说,第二版将在R中更快,更干净。我强烈建议您使用向量化方法。

暂无
暂无

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

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