私はそれが動作しませんが、最大から最小まで、列AでZを注文したい場合は、私は、テーブルの列を注文するorder
機能を使用するために負の値を注文するために注文関数を使用する方法?
a<-c("-2","-7","-4")
b<-c("9","-1","3")
z<-data.frame(a,b)
をしようとしています。この関数は、負の値を絶対値で指定します。
z[order(z$a,decreasing=TRUE),]
私はそれが動作しませんが、最大から最小まで、列AでZを注文したい場合は、私は、テーブルの列を注文するorder
機能を使用するために負の値を注文するために注文関数を使用する方法?
a<-c("-2","-7","-4")
b<-c("9","-1","3")
z<-data.frame(a,b)
をしようとしています。この関数は、負の値を絶対値で指定します。
z[order(z$a,decreasing=TRUE),]
あなたを数値する要因を変換する必要がある場合はしなければならない、よくある質問で説明するよう、最初の数値に続い文字TNAに変換:
str(z)
#'data.frame': 3 obs. of 2 variables:
# $ a: Factor w/ 3 levels "-2","-4","-7": 1 3 2
# $ b: Factor w/ 3 levels "-1","3","9": 3 1 2
z[order(as.numeric(as.character(z$a)), decreasing=TRUE), ]
a b
1 -2 9
3 -4 3
2 -7 -1
(解説:要因は、もちろんない限り、彼らが "あります要因を命じた」、注文してとの比較されていない 『>』または 『<』はNAを返します。
> z$a[1] > z$a[2]
[1] NA
Warning message:
In Ops.factor(z$a[1], z$a[2]) : > not meaningful for factors
オードされているものあなたの努力の赤は、あなたが期待していなかった数字への内部強制でした。ここでは)
> z$a
[1] -2 -7 -4
Levels: -2 -4 -7
> as.numeric(z$a)
[1] 1 3 2
'z [order(a)]'は期待どおりに動作します。 -2、-4、-7 - 最大から最小。それとも偶然で正しいのですか? –
OPが期待していたものではないかと思われます。彼は実際に彼が期待したことを言っていませんでした。私は、「負の数値」の文字照合順序が文字と数字の違いで悩まされていると想定していました。 "-2"> "-7" [1] FALSE; -2> -7 [1] TRUE –
'z [order(a)]'は、文字のベクトルである 'a'変数を持つためにのみ機能します。これをデータフレームに入れると、それが要素になり、変換する必要があります。偶然、あなたが望むものはダッシュナンバーとして文字を読み込むので、並べ替えでは '' -9 ''は' '-1" 'よりも大きくなります。すべての値が負であるため、減少効果が得られますが、これは単なる偶然のことです。 –
は、単純なベクトルである:
x <- c(2, 4, 0.5, -0.5 ,-1, 3,10)
print(x)
2.0 4.0 0.5 -0.5 -1.0 3.0 10.0
> order(x)
5 4 3 1 6 2 7 # Not cool
> match(x, sort(x))
4 6 3 2 1 5 7 # Cool
これは元の投稿(ここで言及していない独自の例や問題が含まれています)とは何が関係していますか?最後の行は 'rank(x)'と同じ結果を返します。 – Frank
'Z [オーダー(A)、]私はこれをしようとすると、' ... –
は、私は列の値を低下または増加のいずれかのz順序を取得しますa。これはうまくいくようです。データを表示したい順序とデータを表示している順序を投稿できますか? – ditkin
本当に 'a'と' b'が要因になるのですか?私はそれが直感的な結果に直面していると推測しています。 – Chase