0

次のサンプルデータがあります

    BR WT   SW   PO
1  4.0  7  2.0  1.0
2 12.0  5  4.0  2.0
3  8.0  7  5.0  8.6
4  9.0  3  5.6  9.0
5  1.0 10  6.0  5.0
6  6.0  2  7.5 12.0
7  7.0  3 10.0 15.0
8  4.5 10 12.0  6.0

私がやろうとしているのは、最初にデータの各列を調べ、各列内で:

(a) 列全体に対して各値をランク付けし、

(b) 列内の観測の総数を数えます。

次に、列ごとに、「rank/(count+1)」という数式を実行し、その結果を変数に代入しようとしています。このサンプル データ フレーム ("df") のこれまでのコードを次に示します。

    for (i in 1:ncol(df)) {
      assign(paste("x",i,sep=""),rank(-df[,i],ties.method="first"))
      assign(paste("y",i,sep=""),length(df[,i]))
      assign(paste("z",i,sep=""),(x[i]/(y[i]+1)))
    }

各「割り当て」行をトラブルシューティングすると、「x」変数と「y」変数は正常に機能します。

> x1
[1] 7 1 3 2 8 5 4 6

> x2
[1] 3 5 4 6 1 8 7 2

> x3
[1] 8 7 6 5 4 3 2 1

> x4
[1] 8 7 4 3 6 2 1 5

y1:4 (この場合) は正常に動作し、すべて値が 8 になります。ただし、x[i]/(y[i]+1) の演算では、次のエラーが発生します。

Error in assign(paste("z", i, sep = ""), (x[i]/(y[i] + 1))) : 
  object 'y' not found

誰にもアイデアはありますか?この新しい「z[i]」値を計算したら、これらの z 値で新しいデータフレームを作成して、ggplot に進むにはどうすればよいですか?

4

1 に答える 1