このエラーは、 to 句が 単一の値if
であるべきであることを示しています。
つまり、 または のいずれかですが、例ではありません。
TRUE
FALSE
c(TRUE, TRUE, FALSE)
したがって、次のようなことを達成しようとすると
if (c(TRUE, FALSE, TRUE))
< DO SOMETHING WHEN TRUE >
< DO SOMETHING DIFFERENT WHEN FALSE >
基本的なif
ステートメントは機能しません。
ステートメントは最初の値だけを調べます (警告が示すように)。
そのような状況では、使用するステートメントは次のとおりですifelse
(@Joranが回答で指摘したように)
ifelse ( c(TRUE, FALSE, TRUE),
< DO SOMETHING WHEN TRUE > ,
< DO SOMETHING DIFFERENT WHEN FALSE > )
また
set$DoYnew <- ifelse(set$Year == 2002,DoY + 365,DoY)
さらに、データが data.frame にある場合は、必要に応じてサブセット化できます。
myDF$day[myDF$Year==2002] <- 365 + myDF$day[myDF$Year==2002]
# or if using data.table:
myDT[year==2002, day := day + 365]