2017-11-20 5 views
1

Rに問題があります。各行に最小値の列を抽出しようとします。私に説明してみましょう:特定の行(R)の最小列を選択

Test = data.frame(Day1 = c(1,6,3,8), Day2 = c(2,5,4,9) 

出力:

Day1 Day2 
1 1 2 
2 6 5 
3 3 4 
4 8 9 

私は(そう、行1のために、それは1(1日目になります)、各列の最小値を選択する第三列を作成したい。行2、それは5(2日目)になり、3行目、それはなど、3(1日目)になります...

おかげで、誰もが先端を持っている場合

はEDIT:!それを見つけたが、私はしないでくださいどうすれば最小の名前で4列目を作成できますか? (行1の場合、Day1になります。 2行目、2日目など)?

+0

ありがとう。そして、最小の名前で4番目の列を作成するにはどうしたらいいですか? (行1の場合はDay1、行2の場合はDay2など)? – Jay

答えて

1

applyを使用すると、各行の最小値を見つけることができます。 1のパラメータを設定

Test$minimum <- apply(Test,1,which.min) 

Testの各行にわたってコードwhich.minを実行します。

は、このことができますapply

Test$minimum_day <- colnames(Test)[apply(Test,1,which.min)] 

希望する前にcolnames(Test)を追加し、minmum列の列名を取得するには!

+0

ありがとう、それは動作します!しかし、私は今最小の名前で4列目を作ることができますか? (行1の場合はDay1、行2の場合はDay2など)? テスト$ daymin < - apply(Test、1、colnames(which.min))を試しましたが、動作していないようです。 – Jay

+0

私は上記のコメントを編集しました。あなたは近くにいましたが、apply関数の外で 'colnames'を動かさなければなりませんでした。 –

関連する問題