2016-11-15 6 views
-4

データフレーム(「transp_correlations」)を1つの列「corr」(理想的には降順)で並べ替えようとしています。 。データフレームを注文する際の課題

は、残念ながら、私は多くの問題に直面している - 私は試した何

  • TRANSP < - transp_correlations [オーダー(CORR)、] - >スカラー(データフレームの最初のセル)を返します
    • transpソートされたベクトルを返すが、rownames
  • TRANSP <削除> - - transp_correlations [順序( "CORR")] - > [非0を返す - transp_correlations [順序(transp_correlations $ CORR)]ソートされたデータフレーム

私の知識によれば、最初のオプションは正しい構文であり、私は他の2つを偶然だけ特定しました。どのように正しい構文を書いてくださいすべての指導は非常に高く評価されるだろう。

構造(リスト(CORRの= Cの(-0.117661691889059、-0.244374051965591、 -0.219277156640164、-0.162119035544463、-0.153750058161601、0.238059055122716、 -0.112988647529562、-0.22890950435724、-0.212213257871138、-0.164868801623183、 -0.157327010028056、0.276036409162576、 - 0.129156901338342、-0.247314062599315、 -0.234716884100804、-0.177925630373387、-0.164633635391903、0.227786973830269、 -0.10921452701353、-0.0385193717439635)、abscorr = C(0.117661691889059、 0.244374051965591、0.219277156640164、0.162119035544463、0.153750058161601、 0.238059055122716、0.112988647529562、0.22890950435724、0.212213257871138、 0.164868801623183、 0.157327010028056、0.276036409162576、0.129156901338342、 0.247314062599315、0.234716884100804、0.177925630373387、0.164633635391903、 0.227786973830269、0.10921452701353、0.0385193717439635)は、(62L、 108L、96L、85L、80L、105L、61L、100L、94L、89L、82L、= Cを鳴らしrow.names = c( "V1"、 "115"、 "115"、 "115"、 "115"、 "115"、 " 「V2」、「V3」、「V4」、「V5」、「V6」、「V7」、「V8」、 「V9」、「V10」、「V11」、「V12」、「V13」、 「V14」、「V15」、「V16」、「V17」、「V19」、「V20」 )、クラス=「データフレーム」)

+0

ようこそを試してみてください。エラーを再現するデータのサンプルがなければ、この質問を支援することは不可能です。再現可能な例のヒントについては、http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-exampleを参照してください。 'mtcars'データセットで記述した振舞いを再現することができません。あなたは 'dput(head(transp_correlations、20))'を使ってあなたのデータのスニペットを共有できますか? – Benjamin

+0

ありがとうございました。確かに、以下のスニペットを見つけてください。そして私が言ったように、私はこの挑戦について絶望的ですが、ロジックの説明のほとんどがRバージョンのいくつかの異なる動作に関係していませんか?私はRバージョン3.2.3を使用しています –

答えて

1

データを使用して、あなたの試みで何が起きたか説明してください。

transp_correlations <- structure(list(corr = c(-0.117661691889059, -0.244374051965591, -0.219277156640164, -0.162119035544463, -0.153750058161601, 0.238059055122716, -0.112988647529562, -0.22890950435724, -0.212213257871138, -0.164868801623183, -0.157327010028056, 0.276036409162576, -0.129156901338342, -0.247314062599315, -0.234716884100804, -0.177925630373387, -0.164633635391903, 0.227786973830269, -0.10921452701353, -0.0385193717439635), abscorr = c(0.117661691889059, 0.244374051965591, 0.219277156640164, 0.162119035544463, 0.153750058161601, 0.238059055122716, 0.112988647529562, 0.22890950435724, 0.212213257871138, 0.164868801623183, 0.157327010028056, 0.276036409162576, 0.129156901338342, 0.247314062599315, 0.234716884100804, 0.177925630373387, 0.164633635391903, 0.227786973830269, 0.10921452701353, 0.0385193717439635), rang = c(62L, 108L, 96L, 85L, 80L, 105L, 61L, 100L, 94L, 89L, 82L, 115L, 70L, 110L, 103L, 91L, 88L, 98L, 59L, 36L)), .Names = c("corr", "abscorr", "rang"), row.names = c("V1", "V2", "V3", "V4", "V5", "V6", "V7", "V8", "V9", "V10", "V11", "V12", "V13", "V14", "V15", "V16", "V17", "V18", "V19", "V20"), class = "data.frame") 

私のワークスペースにcorrという名前のオブジェクトが存在しないので、次の行は私のために失敗します。このコード行は、データ・フレームのcorr列を使用するようにRに指示していないため、失敗していない場合は、作業領域にcorrという名前のオブジェクトを定義しておく必要があります。 Rはその外部corrに基づいてtransp_correlationsを注文しようとしています。これはほとんどあなたが望むものではありません。

transp_correlations[order(corr), ] 

この次の行は、それは間違った方法を命じていることを除いて、私がしたいと考えていた結果を提供します。

transp_correlations[order(transp_correlations$corr), ] 

この三行目は私にあなたのデータフレームのcorr列を与えます。文字ベクトルc("corr")を注文しました。返されます。したがって、1つの列しか抽出できませんでした。

transp_correlations[order("corr") ] 

あなたが望む結果を得るには、スタックオーバーフローに

transp_correlations[order(transp_correlations$corr, decreasing = FALSE), ] 
関連する問題