【发布时间】:2020-05-18 23:53:51
【问题描述】:
我正在尝试在 R 中创建一个 if 语句。 这是我的起始表:
我尝试了以下方法,得出了一个合理的结果:
GSPC$GSPC.DIFF <- for( i in 1:length(GSPC$GSPC.Weekdaynr) ) {
if( GSPC$GSPC.Weekdaynr[i] > 4 ) {
GSPC.DIFF <- append(GSPC.DIFF,5)
} else {
GSPC.DIFF <- append(GSPC.DIFF, "")
}
}
但是将语句 1 更改为 append(GSPC.DIFF,GSPC$GSPC.Close)
GSPC$GSPC.DIFF <- for ( i in 1:length(GSPC$GSPC.Weekdaynr) ) {
if ( GSPC$GSPC.Weekdaynr[i] > 4 ) {
GSPC.DIFF <- append(GSPC.DIFF, GSPC$GSPC.Close)
} else {
GSPC.DIFF <- append(GSPC.DIFF, "")
}
}
提供以下内容:
有人知道为什么它不像第一种情况那样每五行都赋予价值吗?
【问题讨论】:
-
我认为您正在寻找的是一个简单的
ifelse(),即ifelse(GSPC$GSPC.Weekdaynr[i] > 4, GSPC$GSPC.Close, "")。那是你想要的吗?此外,人们将能够通过minimal reproducible example 更好地帮助您。特别是,如果您edit 您的问题包括dput(head(GSPC, 10))的输出而不是发布您的数据图片,您可以提供(至少一部分)您的数据,人们无法复制和粘贴这些图片以使用您的数据在他们自己的 R 会话中。 -
谢谢,我没有得到想要的答案。我使用了这个公式 -> GSPC$GSPC 4, GSPC$GSPC.Test
-
在 GSPC.Weekdaynr 5 的情况下应该说 0,在 4 的情况下应该说 1(由于某种原因两者都说 0) GSPC$GSPC 4, GSPC$GSPC.Test
-
另外声明1应该是最终结果中的公式 = (DJI.Close - lag(DJI.Close))/lag(DJI.Close) * 100)
标签: r for-loop if-statement