電子書籍の厳選無料作品が豊富!

間違えて「解決済」としてしまいました。

もし気づいていただけたら、ご回答いただけると助かります。

Dataset <- read.csv("Dataset.csv")
s.dist <- dist(Dataset[2:15])
s.cmd <- cmdscale(s.dist)
P <- c(16,16,16)[unclass(Dataset[,16])]
C <- c("blue","red","orange")[unclass(Dataset[,16])]
plot(s.cmd,pch=P,col=C)
text(s.cmd,labels=Dataset[,17],pos=4,offset=0.5,cex=0.8)
#
# 追加部分
#
for(n in 1:4){
for(g in 1:2){
start <- s.cmd[Dataset[,16]==g & Dataset[,17]==n,]
end <- s.cmd[Dataset[,16]==ifelse(g==1,3,1) & Dataset[,17]==n,]
arrows(start[1],start[2],end[1],end[2],code=2,length=0.1)
}}

重ねてお尋ねしますが、

for(n in 1:4){

こちらは1 groupのno.が4つ振られているからだと思いますが、

for(g in 1:2){

こちらの意味合いはどういったものなのでしょう…。


質問箱に不慣れで、何かすいません…。

質問者からの補足コメント

  • うれしい

    rinkun様
    kamiyasiro様

    ご回答ありがとうございます。
    スクリプト、やっぱり私には少し難しいです…。

    ただいまちょっと時間がないので、後ほどじっくり再考してみます…。

    本来なら個別でお礼をすべきところなのですが、
    スクリプト理解に少々お時間をください。

    ひとまず、レスポンスまで。

      補足日時:2016/02/13 18:22

A 回答 (2件)

元質問はこれだよね。


https://oshiete.goo.ne.jp/qa/9175722.html

> for(g in 1:2){
グループごとに矢印を2つ書いているから。
2つで固定なら内側のループは展開してしまって下記のようにした方が分かりやすいかも。

for(n in 1:4){
start <- s.cmd[Dataset[,16]==1 & Dataset[,17]==n,]
end <- s.cmd[Dataset[,16]==3 & Dataset[,17]==n,]
arrows(start[1],start[2],end[1],end[2],code=2,length=0.1)
start <- s.cmd[Dataset[,16]==2 & Dataset[,17]==n,]
end <- s.cmd[Dataset[,16]==1 & Dataset[,17]==n,]
arrows(start[1],start[2],end[1],end[2],code=2,length=0.1)
}
    • good
    • 0
この回答へのお礼

お礼遅くなりました。

実際のデータで教えていただいたスクリプトを実行し、
線の色や太さなどは変更するところまではできました。

関数forでnは個体、gはグループという規定をしているんですね、きっと。
R-Tipsで少し関数を読んでみましたが、
実際、自分では思いつかない気がしました(目から鱗というべきか…)。

関数ifelseが私にはまだ理解できないので、
多少スクリプトが長くなっても、こちらの方が理解しやすい気がしました。

ありがとうございました。

お礼日時:2016/02/15 10:49

先ほど回答した者です。



通常であれば、点p個を順番に矢印でつなぐのは、
次のようなスクリプトになります。

for(n in 1:(p-1)){ # ループが必要なのは始点の数だけ
start <- x[n,1:2] # 始点
end <- x[n+1,1:2] # 終点
arrows(start[1].start[2],end[1],end[2],code=2)
}

つまり、3点をつなぐなら、始点は2個です。

以前に回答したスクリプトは、
始点をどう指定するか、終点をどう指定するか、が
番号順ではないから、ちょっと複雑になっています。
(それは、先に回答された方が説明してくれています)

このループを、さらに、forループで回しています。
    • good
    • 0
この回答へのお礼

お礼遅くなりました。

度重なる疑問にご丁寧に解説していただきありがとうございました。

「==」とか「&」とか、R-Tipsを読んで少し意味がわかりました。
No.1さんのお礼にも書きましたが実際のデータで実行したところ、
一つの図に2つの要素(青まるに対しての赤まると黄まる)を含めてしまうと図としてbusyになってしまったので、
結局分けてみる(青まると赤まるの図、青まると黄まるの図)ことにしました。
集合体として全体の解析はしたいので、色を消すことで対応してみようかと思っています。
また、実際のデータには欠番もあるので、
ご提案いただいたように、線で結びたい番号順でデータ入力してみます。

前回の質問も含めて、色々なヒントをいただきましたので、
プレゼン資料として、どのような作図が視覚的に理解してもらい易いか、
少し試行錯誤してみます。

ご協力ありがとうございました。

お礼日時:2016/02/15 11:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!