1
複数の列にデータフレームを注文しようとしています。列名は変数に渡されます。変数を使用して複数の列でデータフレームを注文する
df <- data.frame(var1=c("b","a","b","a"),var2=c("l","l","k","k"),var3=c("t","w","x","t"))
var1 var2 var3
1 b l t
2 a l w
3 b k x
4 a k t
私は2つの列で注文したい場合は、今すぐ変数
sortvar <- "var1"
df[order(df[,sortvar]),]
var1 var2 var3
2 a l w
4 a k t
1 b l t
3 b k x
を使用して1列に並べ替え、上記の解決策は動作しません。
sortvar <- c("var1","var2")
df[order(df[,sortvar]),] #does not work
列名を使用して手動で注文することができます。
df[with(df, order(var1,var2)),]
var1 var2 var3
4 a k t
2 a l w
3 b k x
1 b l t
しかし、変数を使用してデータフレームを複数の列に並べるにはどうすればよいですか?私はplyrとdplyr arrange
関数を認識していますが、ここで基底Rを使いたいと思います。
同様の変形: 'with(mtcars、do.call(order、mget(sortvar)))'は、 – mt1022