2017-06-15 7 views
-4

私は、次のようなデータフレームを持っている:全体で0.2以上の値を持つ列をソートする方法は?

df: 

Sample Region4 Region1 Region5 Region3 Region2 Type 
T1  0  0.289 0.378 0  1  K 
T2  0  0.167  0  0.875 0.389 K 
T3 0.186  0.12345 0  0  0.187 K 
T4 0.11234  0.1789 0  0.457 0.786 L 
T5 0.2347  0.2567 0  0  0  L 
T6 0.28769  0  0.123 0.1987 0.1565 L 
T7 0.142  0  0.1987 0  0  M 
T8  0  0.1256 0.123 0.129 0.111 M 
T9 0.187  0.987  0  0.237 0.783 M 

値で賢明な列をソートする方法> = 0.2、ソートは値< 0.2に適用されるべきではありません。

このように試しました。しかし、私たちは「地域」の列にlapplyとループ、論理ベクトル(「I1」)を作成し、orderを値のサブセットすることを利用して更新することができ

sort(apply(df[grepl("Region",length(colnames(df)], 2, function(x) 
any(x >= 0.2)),decreasing=TRUE) 
+2

あなたはすでに同じ質問を複数回聞いたことがありますか? – AK88

答えて

2

動作しませんでしたそれ

nm1 <- grepl("Region",names(df1)) 
df1[nm1] <- lapply(df1[nm1], function(x) { 
     i1 <- x >= 0.2 
     x[i1] <- x[i1][order(x[i1], decreasing = TRUE)] 
     x}) 
+0

また、列の並べ替えを並べ替える必要があります – raju

+0

@rajuあなたの質問は、列を並べ替えることだと思われる。 – akrun

+0

はい、今編集した私の間違い – raju

関連する問題