forループでは、2つの異なるデータフレームのデータをリンクする際にいくつかの問題があります。 各データフレームの一部を表示するつもりですが、これらのデータフレームの長さがはるかに大きいことを知る必要があるため、ループを使用して問題を解決する必要があります。私はここに新しいですので、私は、画像の中に置くことができないので、私はごく一部を入力して、それを明確にしようとします:計算とプリントのデータフレーム間のループ
DATAFRAME 1:
Four columns: Treenr, X, Y and d
first row: 1, 191.5, 240, 23.93
second row: 2, 213.5, 153.5, 8.14
DATAFRAME 2
Three columns: Liananr, Xl, Yl
first row: 1, 191.5, 240, 23.93
second row: 2, 213.5, 153.5, 8.14
を
X
とY
は座標です。 d
は距離です。 最終的に私はすべての里親のためにこれを計算したい:r = sqrt((Xl-X)^2+(Yl-Y)^2)
。各liananrのために(5)Treenrにリンクされているので、それぞれ、これは列ごとに次のことを示します(2) 、これは10行を与える必要があります
Liananr, Treenr, r and d.
:私は私に4列を与える新しいデータフレーム、でこれを望みます行:
row 1: 1, 1, 91.11, 23.93
row 2: 2, 1, 73.56, 29.93
row 3: 3, 1, 73.56, 29.93
row 4: 4, 1, 73.56, 29.93
row 5: 5, 1, 55.22, 23.93
row 6: 1, 2, 53.50, 8.14
row 7: 2, 2, 58.22, 8.14
row 8: 3, 2, 58.22, 8.14
row 9: 4, 2, 58.22, 8.14
row 10: 5, 2, 74.50, 8.14
私は、「リンクされた」新しいデータフレームを呼ぶだろうと最初に私が定義:
X <- dataframe1$X
Y <- dataframe1$Y
Xl <- dataframe2$Xl
Yl <- dataframe2$Yl
for (i in 1:length(dataframe1$Treenr) {
for (j in 1:length(dataframe2$Liananr) {
Linked$Liananr <- dataframe2$Liananr
Linked$Treenr <- dataframe1$Treenr
Linked$r <- sqrt((Xl[j,]-X[i,])^2+(Yl[j,]-Y[i,])^2)
Linked$d <- dataframe1$d
}
}
私の最大の問題は、私はで動作する方法がわからないということですiとjをこのループに入れます。
ありがとうございます。 – Jana
素晴らしい!回答が助けられた場合、解決を確認するために同意してください。 – Parfait