Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 指示市场是上涨还是下跌的if声明_R_Function_Loops_If Statement - Fatal编程技术网

R 指示市场是上涨还是下跌的if声明

R 指示市场是上涨还是下跌的if声明,r,function,loops,if-statement,R,Function,Loops,If Statement,我有一个来自图书馆(ISLR)的数据集,我想做我自己的上下,但如果我的陈述总是失败,任何帮助都将不胜感激: library(ISLR) attach(Smarket) for (i in 1:nrow(Smarket)){ Smarket$myown = () if (Smarket[i, "Today"]>0) { Smarket$myown = "Up" } else { Smarket$myown = "Down" } } 请注意,如果我使用语句ife

我有一个来自图书馆(ISLR)的数据集,我想做我自己的上下,但如果我的陈述总是失败,任何帮助都将不胜感激:

library(ISLR)
attach(Smarket)

for (i in 1:nrow(Smarket)){
    Smarket$myown = ()
    if (Smarket[i, "Today"]>0) { Smarket$myown = "Up"
    } else { Smarket$myown = "Down"
  }
}
请注意,如果我使用语句
ifelse
,那么问题就解决了,但我希望您帮助修改上述代码,以便我可以学习

 Smarket$myown = ifelse(Smarket[, "Today"]> 0, "Up", "Down")  

很接近,但缺少实际创建所需列的索引。
ifelse
工作正常,因为它为您建立索引。请尝试以下方法:

for (i in 1:nrow(Smarket)){
  if(Smarket[i, "Today"] > 0){ 
    Smarket$myown[i] = "Up"
  }else{ 
    Smarket$myown[i] = "Down"
  }
}
请注意,我不需要像您那样初始化列“myown”。如果要创建一个全新的向量,则需要这样做,但由于要添加到现有的
data.frame
,因此不需要这样做。还要注意,每次为“myown”指定新值时,都会出现一个
[i]
。读作:


“对于
nrow(Smarket)
中的每个项目,如果第i个“今日”值大于零,则在“myown”的第i个值中存储“Up”至。否则,在“myown”的第i个项目中存储一个“Down”。

您需要使用指示器
i
来写入变量sto
myown
,例如
Smarket$myown[i]谢谢,罗曼,这帮了大忙。非常感谢你的解释。这是一个令人尴尬的错误,但如果我没有问,我就不会知道:)