NAと一意の値のみを持つ列を選択し、NAにその値を入力するにはどうすればよいですか?

ElifCansuAkoğuzはまだMediumで活動していません。

一部の列に一意の値またはNAしかないデータフレームがあります。これらの列を選択し、これらの列のNAに、列内の一意の欠落していない変数を入力します。

これがモックデータです:

df = data.frame( A = c(1,NA,1,1,NA), B = c(2,NA,5,2,5), C =c(3,3,NA,NA,NA))
#df
#   A  B   C
#1  1  2   3
#2  NA NA  3
#3  1  5   NA
#4  1  2   NA
#5  NA 5   NA

入手したい:

#df
#   A B   C
#1  1 2   3
#2  1 NA  3
#3  1 5   3
#4  1 2   3
#5  1 5   3

これまでのところ、私は試しました:

df = df %>% 
      map_if((length(unique(na.omit(.)))== 1), ~ unique(na.omit(.)))

df = df %>% 
     mutate_if((length(unique(na.omit(.)))== 1), ~ unique(na.omit(.)))

どちらも次のエラーが発生しました。

プローブ(.x、.p)のエラー:length(.p)== length(.x)がTRUEではありません

誰かが私が望むものを達成するための正しい構文は何であるか教えてもらえますか?

ロナックシャー

の状態をチェックしmutate_if、それが満たさている場合は、列全体に最初の非NA値を使用できます。

library(tidyverse)

df %>%
  mutate_if(~n_distinct(.[!is.na(.)]) == 1, funs(.[!is.na(.)][1]))


#  A  B C
#1 1  2 3
#2 1 NA 3
#3 1  5 3
#4 1  2 3
#5 1  5 3

@RHertelが提案するように書くこともできます

df %>% mutate_if(~n_distinct(.[na.omit(.)]) == 1, funs(na.omit(.)[1]))

より明確にするために、関数を作成してそれに応じて使用することができます

only_one_unique <- function(x) {
   n_distinct(x[!is.na(x)]) == 1
}

first_non_NA_value <- function(x) {
   x[!is.na(x)][1]
}

df %>%  mutate_if(only_one_unique, first_non_NA_value)

同じロジックを使用して、すべてをベースRに保持できます

only_one_unique <- function(x) {
   length(unique(x[!is.na(x)])) == 1
}

first_non_NA_value <- function(x) {
   x[!is.na(x)][1]
}

df[] <- lapply(df, function(x) if (only_one_unique(x)) 
                                   first_non_NA_value(x) else x)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

一意の列値を持つ最新のN行を選択するにはどうすればよいですか

分類Dev

一意の配列値を選択するにはどうすればよいですか?

分類Dev

一意の列の値を選択して、別の列の値の合計を表示するにはどうすればよいですか?

分類Dev

2つの列の間で重複を削除し、それぞれの列に一意の値を保持するにはどうすればよいですか?

分類Dev

一意の(重複していない)フィールドを持つ行のみを選択するにはどうすればよいですか?

分類Dev

mysqlの条件付きで一意の値を選択するにはどうすればよいですか?

分類Dev

SQL Serverの1つの列だけを見て一意の値を選択するにはどうすればよいですか?

分類Dev

他の列でグループ化されているときに、特定の列で一意でない値を持つ行を選択するにはどうすればよいですか?

分類Dev

Javascript / Jqueryを使用して、一意の属性値ごとに最初に一致した要素を選択するにはどうすればよいですか?

分類Dev

列Aに共通の値を持つ行の列Aに一意の値を適用するにはどうすればよいですか?

分類Dev

配列に一意の値のみを保持するにはどうすればよいですか?

分類Dev

それぞれの一意の文字が表示される回数の値を持つ辞書の一部として、Pythonに文字列の文字の順序を使用させるにはどうすればよいですか?

分類Dev

複数の列から一意の値を抽出し、それらを使用して1つの列に入力するにはどうすればよいですか?

分類Dev

アンカークリックごとに一意のIDを持つ次の要素を選択するにはどうすればよいですか?

分類Dev

EclipseLinkで一意の値を持つ列の値を見つけるにはどうすればよいですか?

分類Dev

同じ値を持つ複数の行の最初の行と特定の列のみを選択するにはどうすればよいですか?

分類Dev

事前にその値を知らずに、列内の同じ値を持つ行を選択するにはどうすればよいですか?

分類Dev

SQL 2008で特定の列値を持つ列を選択するにはどうすればよいですか?

分類Dev

パンダの複数の列にNA値を入力するにはどうすればよいですか?

分類Dev

Excelで、名前付き範囲からランダムに選択されたN個の列が、各行で一意の値を持つようにするにはどうすればよいですか?

分類Dev

フォーム内の一意の値のみを選択するにはどうすればよいですか?

分類Dev

kustoの列から一意の値を分離し、それらの新しい行を作成するにはどうすればよいですか?

分類Dev

選択オプションに一意のデータを入力し、選択したアイテムとして値を返すにはどうすればよいですか?

分類Dev

Laravel-5.4の複数の列で入力値の一意の検証を解決するにはどうすればよいですか

分類Dev

配列内の一意の値を見つけて、それらをRubyの変数に割り当てるにはどうすればよいですか?

分類Dev

列ごとの一意性チェックを使用してテーブルに値を挿入するにはどうすればよいですか?

分類Dev

Oracle SQLの複数の列から一意の値を選択するにはどうすればよいですか?

分類Dev

結果の配列にのみ表示される一意の値または異なる値のみを持つ2つの複雑なJSONオブジェクトをマージするにはどうすればよいですか?

分類Dev

テーブルから列の一意の値を選択するにはどうすればよいですか?

Related 関連記事

  1. 1

    一意の列値を持つ最新のN行を選択するにはどうすればよいですか

  2. 2

    一意の配列値を選択するにはどうすればよいですか?

  3. 3

    一意の列の値を選択して、別の列の値の合計を表示するにはどうすればよいですか?

  4. 4

    2つの列の間で重複を削除し、それぞれの列に一意の値を保持するにはどうすればよいですか?

  5. 5

    一意の(重複していない)フィールドを持つ行のみを選択するにはどうすればよいですか?

  6. 6

    mysqlの条件付きで一意の値を選択するにはどうすればよいですか?

  7. 7

    SQL Serverの1つの列だけを見て一意の値を選択するにはどうすればよいですか?

  8. 8

    他の列でグループ化されているときに、特定の列で一意でない値を持つ行を選択するにはどうすればよいですか?

  9. 9

    Javascript / Jqueryを使用して、一意の属性値ごとに最初に一致した要素を選択するにはどうすればよいですか?

  10. 10

    列Aに共通の値を持つ行の列Aに一意の値を適用するにはどうすればよいですか?

  11. 11

    配列に一意の値のみを保持するにはどうすればよいですか?

  12. 12

    それぞれの一意の文字が表示される回数の値を持つ辞書の一部として、Pythonに文字列の文字の順序を使用させるにはどうすればよいですか?

  13. 13

    複数の列から一意の値を抽出し、それらを使用して1つの列に入力するにはどうすればよいですか?

  14. 14

    アンカークリックごとに一意のIDを持つ次の要素を選択するにはどうすればよいですか?

  15. 15

    EclipseLinkで一意の値を持つ列の値を見つけるにはどうすればよいですか?

  16. 16

    同じ値を持つ複数の行の最初の行と特定の列のみを選択するにはどうすればよいですか?

  17. 17

    事前にその値を知らずに、列内の同じ値を持つ行を選択するにはどうすればよいですか?

  18. 18

    SQL 2008で特定の列値を持つ列を選択するにはどうすればよいですか?

  19. 19

    パンダの複数の列にNA値を入力するにはどうすればよいですか?

  20. 20

    Excelで、名前付き範囲からランダムに選択されたN個の列が、各行で一意の値を持つようにするにはどうすればよいですか?

  21. 21

    フォーム内の一意の値のみを選択するにはどうすればよいですか?

  22. 22

    kustoの列から一意の値を分離し、それらの新しい行を作成するにはどうすればよいですか?

  23. 23

    選択オプションに一意のデータを入力し、選択したアイテムとして値を返すにはどうすればよいですか?

  24. 24

    Laravel-5.4の複数の列で入力値の一意の検証を解決するにはどうすればよいですか

  25. 25

    配列内の一意の値を見つけて、それらをRubyの変数に割り当てるにはどうすればよいですか?

  26. 26

    列ごとの一意性チェックを使用してテーブルに値を挿入するにはどうすればよいですか?

  27. 27

    Oracle SQLの複数の列から一意の値を選択するにはどうすればよいですか?

  28. 28

    結果の配列にのみ表示される一意の値または異なる値のみを持つ2つの複雑なJSONオブジェクトをマージするにはどうすればよいですか?

  29. 29

    テーブルから列の一意の値を選択するにはどうすればよいですか?

ホットタグ

アーカイブ