[解決済み] 2つのdata.frameを比較して、data.frame 1に存在し、data.frame 2に存在しない行を探す
2022-04-13 20:21:33
質問
以下の2つのdata.frameがあります。
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
a1が持っていてa2が持っていない行を探したい。
このような操作を行うための組み込みの関数はありますか?
(p.s: 私はそのための解決策を書いたのですが、誰かがすでにもっと洗練されたコードを作っていないかどうか、単に興味があるだけです)
以下は私の解決策です。
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
rows.in.a1.that.are.not.in.a2 <- function(a1,a2)
{
a1.vec <- apply(a1, 1, paste, collapse = "")
a2.vec <- apply(a2, 1, paste, collapse = "")
a1.without.a2.rows <- a1[!a1.vec %in% a2.vec,]
return(a1.without.a2.rows)
}
rows.in.a1.that.are.not.in.a2(a1,a2)
解決方法は?
これは質問に対する直接的な答えにはなりませんが、共通する要素を知ることができます。これは、Paul Murrellのパッケージで行うことができます。
compare
:
library(compare)
a1 <- data.frame(a = 1:5, b = letters[1:5])
a2 <- data.frame(a = 1:3, b = letters[1:3])
comparison <- compare(a1,a2,allowAll=TRUE)
comparison$tM
# a b
#1 1 a
#2 2 b
#3 3 c
機能
compare
は、どのような比較が可能か(例えば、各ベクトルの要素の順番を変える、変数の順番や名前を変える、変数を短くする、文字列の大文字小文字を変える)という点で非常に柔軟性を持っています。このことから、どちらかに欠けていたものを把握することができるはずです。例えば(これはあまりエレガントではありませんが)。
difference <-
data.frame(lapply(1:ncol(a1),function(i)setdiff(a1[,i],comparison$tM[,i])))
colnames(difference) <- colnames(a1)
difference
# a b
#1 4 d
#2 5 e
関連
-
R LanguageError in hist.default() : 'x' は数値でなければなりません.
-
データボックス内の行/列の削除/追加を行うR言語
-
R言語ダウンロード機能 download.fileとダウンロード解析
-
[解決済み] 情報を損なわずに因数を整数値に変換するには?
-
[解決済み] 非常に大きなテーブルをデータフレームとして高速に読み込む
-
[解決済み] Rでロードされているパッケージのバージョンを調べるには?
-
[解決済み] data.frameの1つの列の名前を変更する方法は?
-
[解決済み] ggplot2 の棒グラフで棒を並べる
-
[解決済み】data.table vs dplyr:一方がうまくできない、またはうまくできないことを行うことができますか?
-
[解決済み】pandasが他のデータフレームに存在しない行を取得する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
Rでファイルを読み込む際に、そのようなファイルまたはディレクトリが見つかりません。
-
Rによる系統的クラスタリング(階層)分析のグラフ形式の完全版
-
[解決済み] Rでデータフレームに行を追加する方法は?
-
[解決済み] Rで文字列から文字を削除する
-
[解決済み] 特定のサイズのプロットウィンドウを作成する
-
[解決済み] Rでtrycatchの書き方
-
[解決済み] 先頭と末尾の空白を削除するにはどうしたらよいですか?
-
[解決済み] ggplot2 を使って 2 つの変数を同じグラフに線でプロットする
-
[解決済み】set.seed関数を使用する理由