9

次のように作成されたデータフレームがあります。

  X Y  Z T
  1 2  4 2
  3 2  1 4
  7 5 NA 3

いくつかの手順(重要ではありません)の後、このdfを取得しました:

  X Y Z T
  1 2 4 2
  3 2 NA 4
  7 5 NA 3

ステップ中に変更されなかった行のみで作成された新しいデータフレームを取得したい; 結果は次のようになります。

 X  Y  Z  T
 1  2  4  2
 7  5  NA 3

どうすればいいですか?

4

4 に答える 4

3

別のdplyr解決策: semi_join.

dt1 %>% semi_join(dt2, by = colnames(.))
  X Y  Z T
1 1 2  4 2
2 7 5 NA 3

データ

dt1 <- read.table(text = "X Y  Z T
  1 2  4 2
  3 2  1 4
  7 5 NA 3",
                  header = TRUE, stringsAsFactors = FALSE)

dt2 <- read.table(text = "  X Y Z T
  1 2 4 2
                  3 2 NA 4
                  7 5 NA 3",
                  header = TRUE, stringsAsFactors = FALSE)
于 2017-09-11T10:25:03.567 に答える