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