R 指示市场是上涨还是下跌的if声明
我有一个来自图书馆(ISLR)的数据集,我想做我自己的上下,但如果我的陈述总是失败,任何帮助都将不胜感激: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
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
来写入变量stomyown
,例如Smarket$myown[i]谢谢,罗曼,这帮了大忙。非常感谢你的解释。这是一个令人尴尬的错误,但如果我没有问,我就不会知道:)