zone_id=1:6
v1=c(12,22,31,12,5,17)
v2=c(15,22,28,16,18,21)
v3=c(18,10,14,9,10,17)
v4=c(20,3,2,5,12,21)
mydata=data.frame(zone_id,v1,v2,v3,v4)
データフレームは、上記のコードを使用して作成することができます。地理的エリアに関連するデータの行から構成されます。私は、これらの分野での観測である整数を含む変数(この例では4つ、実際のデータセットでは69)を持っています。 各zone_idについて、最大値を含むV1からV4までの変数を識別したいとします。ネクタイがある場合、私は束縛された最大値を含む各変数の名前を返したいと思います。したがって、ゾーン1ではV4を返したい、ゾーン2ではV1とV2などを返したい。データフレーム内のすべての変数に最大値を含む列を返す
私はRに非常に慣れており、これで最初の基礎を得ることができませんでした。私はRのヘルプファイルを調べて、スイープを使った解決法があるかもしれないと考えましたか?どんな助けもありがたい。
私にはwhich(x == max(x))と同等のwhich.max関数があると思います。これはコードをさらに短くすることになります。 –
@PaulHiemstraあなたはhttp://codegolf.stackexchange.com/をよく知っていますか? :) –
@PaulHiemstra私が 'which.max()'と一緒に行かなかった理由は、結びついた最大値があればOPはすべてのインデックスを返すことを望んでいたからです。 'which.max()'は遭遇した最初の**最大値を返します。これは、それと 'which(x == max(x))'バージョンが異なるところです。厳密に言うと、 'which.max(x)'は 'x 'に結びついていない' which(x == max(x)) 'に相当する* only *です。 –