[解決済み] data.tableのカラムを(コピーせずに)並べ替える方法
2022-06-11 20:41:39
質問
のカラムを並べ替えたいのですが、どうすればいいですか?
data.table
x
は、列名の文字ベクトルが与えられる。
neworder
:
library(data.table)
x <- data.table(a = 1:3, b = 3:1, c = runif(3))
neworder <- c("c", "b", "a")
明らかにできた。
x[ , neworder, with = FALSE]
# or
x[ , ..neworder]
# c b a
# 1: 0.8476623 3 1
# 2: 0.4787768 2 2
# 3: 0.3570803 1 3
しかし、その場合、データセット全体を再度コピーする必要があります。 他の方法はないでしょうか。
どのように解決するのですか?
使用方法
setcolorder()
:
library(data.table)
x <- data.table(a = 1:3, b = 3:1, c = runif(3))
x
# a b c
# [1,] 1 3 0.2880365
# [2,] 2 2 0.7785115
# [3,] 3 1 0.3297416
setcolorder(x, c("c", "b", "a"))
x
# c b a
# [1,] 0.2880365 3 1
# [2,] 0.7785115 2 2
# [3,] 0.3297416 1 3
から
?setcolorder
:
で
data.table
言ってみれば、すべてset*
関数は、参照によって入力を変更する。つまり、1列分の大きさの一時的なワーキングメモリを除いて、コピーは全く行われない。
ということで、かなり効率的なはずです。
?setcolorder
をご覧ください。
関連
-
二項演算子への非数値引数を報告するR言語エラー
-
8.2 カマグラ(No.31〜No.40)
-
R言語エラー:図の余白が大きすぎる 解決方法
-
[解決済み] Rの二乗偏差の総和の算出
-
[解決済み] lm.fit(x,y,offset = offset, singular.ok,...) 0 非NAケースでboxcox式で計算するとエラーになる。
-
[解決済み] Rの再現性のある優れた例題の作り方
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] 非常に大きなテーブルをデータフレームとして高速に読み込む
-
[解決済み】data.table vs dplyr:一方がうまくできない、またはうまくできないことを行うことができますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
R: hclust(d, method = method)でのエラー : 外部関数呼び出しは NA/NaN/Inf(arg10) を持つことができません。
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
R言語 - マトリックス
-
[解決済み] Rの%*%の意味 [重複]について
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み] Rで複数行のコメントを持つことは可能ですか?[重複している]。
-
[解決済み] Rでtrycatchの書き方
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み] データフレーム内の列を名前でドロップする方法
-
[解決済み] Rでオブジェクト(変数)が定義されているかどうかを確認するには?