R で3 つの折れ線グラフを作成したいのですが、グラフを描画するために必要な計算を実行するために使用できるパッケージが既にあるかどうか、またはプロットと計算の両方を行う方がよいかどうか疑問に思っていました。
rseek.org で検索してみましたし、いくつかの金融パッケージも調べました。これまでのところ運がありません。
R で3 つの折れ線グラフを作成したいのですが、グラフを描画するために必要な計算を実行するために使用できるパッケージが既にあるかどうか、またはプロットと計算の両方を行う方がよいかどうか疑問に思っていました。
rseek.org で検索してみましたし、いくつかの金融パッケージも調べました。これまでのところ運がありません。
最もクリーンなコードではありませんが、さらなる開発のベースとして役立つ可能性があります。closeval
ダミーの終値を表します。
closeval <- c(50,48,47,47,59,60,57,48,42,50)
cvlag <- c(NA,head(closeval,-1))
dset <- data.frame(closeval,cvlag)
dset <- subset(dset,closeval!=cvlag | is.na(cvlag))
dset$cvlag2 <- c(NA,NA,head(dset$closeval,-2))
plot(dset$closeval)
dset <- dset[2:nrow(dset),]
dset$maxlag <- apply(dset[c("cvlag","cvlag2")],1,max,na.rm=TRUE)
dset$minlag <- apply(dset[c("cvlag","cvlag2")],1,min,na.rm=TRUE)
dset$change <- (dset$closeval-dset$cvlag) > 0
dset$keyval[dset$change==FALSE] <- dset$minlag[dset$change==FALSE]
dset$keyval[dset$change==TRUE] <- dset$maxlag[dset$change==TRUE]
segments(
2:(nrow(dset)+1),
dset$closeval,
2:(nrow(dset)+1),
dset$keyval,
col=ifelse(dset$change==TRUE,"red","blue")
)