[解決済み] データフレームの行を特定の順番でベクトルに従って並べる
2022-04-14 08:16:51
質問
以下の短い例で実装したように、データフレームの行が "ターゲット" ベクトルに従って順序付けされることを確認する簡単な方法はありますか?
df <- data.frame(name = letters[1:4], value = c(rep(TRUE, 2), rep(FALSE, 2)))
df
# name value
# 1 a TRUE
# 2 b TRUE
# 3 c FALSE
# 4 d FALSE
target <- c("b", "c", "a", "d")
これはどういうわけか、仕事をこなすにはちょっと"complete"しすぎのような気がします。
idx <- sapply(target, function(x) {
which(df$name == x)
})
df <- df[idx,]
rownames(df) <- NULL
df
# name value
# 1 b TRUE
# 2 c FALSE
# 3 a TRUE
# 4 d FALSE
解決方法は?
試す
match
:
df <- data.frame(name=letters[1:4], value=c(rep(TRUE, 2), rep(FALSE, 2)))
target <- c("b", "c", "a", "d")
df[match(target, df$name),]
name value
2 b TRUE
3 c FALSE
1 a TRUE
4 d FALSE
を使用する限り、動作します。
target
と全く同じ要素を含んでいます。
df$name
どちらも重複した値を含んでいません。
から
?match
:
match returns a vector of the positions of (first) matches of its first argument
in its second.
したがって
match
に一致する行番号を探します。
target
を返し、その後に
df
をこの順番で実行します。
関連
-
R言語です。「接続を開くことができません」解決策
-
[解決済み] in% の反対: ベクターで指定された値を持つ行を除外します。
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] リストをデータフレームに変換する
-
[解決済み] データフレームのリストを行単位で1つのデータフレームに結合する
-
[解決済み] データフレーム内の列を名前でドロップする方法
-
[解決済み] Rでオブジェクト(変数)が定義されているかどうかを確認するには?
-
[解決済み] [Solved] data.frameで全てまたは一部のNA(欠損値)を含む行を削除する。
-
[解決済み】サブセットされたデータフレーム内の未使用の因子レベルを削除する
-
[解決済み】データフレームから特定の列を抽出する
最新
-
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 - よくあるエラーとその原因 - 注意事項
-
R LanguageError in hist.default() : 'x' は数値でなければなりません.
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
[解決済み] Rの二乗偏差の総和の算出
-
[解決済み] Rで2つのグラフを同じプロットで表示する
-
[解決済み] ベクトル中のxの値を持つ要素の個数を数える
-
[解決済み] 先頭と末尾の空白を削除するにはどうしたらよいですか?
-
[解決済み】私のggplot2構文が賢明であるときに、R CMDチェック「no visible binding for global variable」注記を処理するにはどうすればよいですか?
-
[解決済み] ggplot2 で個々のファセットにテキストをアノテートする
-
[解決済み] 2つの単語の最初の文字を大文字にします。