dplyrデータフレームの単一の列に基づいて複数の列を変更します

トーマスフィリップス

アンケートへの回答を含む大きなデータフレームがあります。私の最小限の作業例(以下)には、3つの質問への回答と、回答が得られる質問票への回答の遅れがあります。

df <- data.frame(ID = LETTERS[1:10],
                 Q1  = sample(0:10, 10, replace=T),
                 Q2  = sample(0:10, 10, replace=T),
                 Q3  = sample(0:10, 10, replace=T),
                 Delay = 1:10
)

3を超える遅延で応答をNAに変更したいと思います。私はこれを1つの質問で簡単に達成できます。

df %>%
  mutate(Q1 = ifelse(Delay >3, NA, Q1))

それは私に

   ID Q1 Q2 Q3 Delay
1   A  5  6  9     1
2   B  8  1  5     2
3   C  8  4  6     3
4   D NA  7  1     4
5   E NA  8 10     5
6   F NA  9  4     6
7   G NA  1  6     7
8   H NA  8  9     8
9   I NA  9  1     9
10  J NA  5  7    10

代わりに、1つのステートメントで3つの質問すべてに対してこれを実行したいと思います(私の実際の問題では、20を超える質問があるため、各質問を個別に実行するのは面倒です)。したがって、私は質問のベクトルを作成します。

q_vec <- c("Q1", "Q2", "Q3")

次に、次のような以前のコードのバリアントを試しました

df %>%
  mutate(all_of(q_vec) = ifelse(Delay >3, NA, ~))

しかし、何も機能しませんでした。これの正しい構文は何ですか?

よろしくお願いします

トーマスフィリップス

ロナックシャー

使用できますacross

library(dplyr)

q_vec <- c("Q1", "Q2", "Q3")
df %>% mutate(across(all_of(q_vec), ~ifelse(Delay >3, NA, .)))

#   ID Q1 Q2 Q3 Delay
#1   A  1  5  0     1
#2   B  9  9  6     2
#3   C  5  7  1     3
#4   D NA NA NA     4
#5   E NA NA NA     5
#6   F NA NA NA     6
#7   G NA NA NA     7
#8   H NA NA NA     8
#9   I NA NA NA     9
#10  J NA NA NA    10

またはベースR:

df[q_vec][df$Delay > 3, ] <- NA

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

R dplyr / tidyverseデータフレームの複数の列に基づいて最大日付を取得します

分類Dev

既存の列に基づいて、データフレームに複数の行と単一の列を追加します

分類Dev

複数の列の条件に基づいて、データフレーム列の特定の値を変更します

分類Dev

Python-パンダ-データフレーム-条件に基づいて単一の列を複数のブール列に分解します

分類Dev

条件に基づいて、データフレーム列の値を別の列の値に変更します

分類Dev

複数の列の値に基づいて新しいデータフレーム列を作成します

分類Dev

1つの列の条件に基づいて、他の列からプルして、データフレームに新しい変数を作成しますか?(dplyr)

分類Dev

Pandasデータフレーム-複数の条件計算に基づいて複数の列を作成します

分類Dev

条件に基づいてパンダデータフレームの複数の列の名前を変更します

分類Dev

複数の列と行の基準に基づいてRデータフレームを展開します

分類Dev

列名の複数の基準に基づいてデータフレーム列を抽出します

分類Dev

前の複数の行/列の値に基づいてデータフレームの行を削除します

分類Dev

列の複数の値に基づいてデータフレームに新しい行を作成します

分類Dev

Rの条件に基づいて、データフレームに複数の新しい列を追加します

分類Dev

Rの複数の列に基づいて2つのデータフレームをマージします

分類Dev

複数の列間の接続に基づいて、データフレームの行を削除します

分類Dev

データの個々のセグメントの数に基づいて、データフレームの単一の列を更新します

分類Dev

単一の列に基づいてパンダのデータフレームを再形成します

分類Dev

他の列に基づいてデータフレームの列値の一部を変更する

分類Dev

複数の列としきい値に基づいてデータフレームをマージします

分類Dev

パンダのデータフレームは、条件に基づいて列の値を変更します

分類Dev

dplyr :: 2番目の(フィルタリングされた)データフレームに基づいて新しい列を変更します

分類Dev

複数の列に基づいてRのデータフレーム行を結合します

分類Dev

列の値に基づいて複数のパンダデータフレームを作成します

分類Dev

1つの列に基づいて複数のデータフレームを追加します

分類Dev

複数の列の値に基づいてデータフレームに新しい列を追加する

分類Dev

Rは、dplyrを使用して列の最大値に基づいてデータフレームを変更します

分類Dev

他の列の一意の組み合わせに基づいてデータフレーム列の値を変更します

分類Dev

Daskデータフレーム-区切り文字に基づいて列を複数の行に分割します

Related 関連記事

  1. 1

    R dplyr / tidyverseデータフレームの複数の列に基づいて最大日付を取得します

  2. 2

    既存の列に基づいて、データフレームに複数の行と単一の列を追加します

  3. 3

    複数の列の条件に基づいて、データフレーム列の特定の値を変更します

  4. 4

    Python-パンダ-データフレーム-条件に基づいて単一の列を複数のブール列に分解します

  5. 5

    条件に基づいて、データフレーム列の値を別の列の値に変更します

  6. 6

    複数の列の値に基づいて新しいデータフレーム列を作成します

  7. 7

    1つの列の条件に基づいて、他の列からプルして、データフレームに新しい変数を作成しますか?(dplyr)

  8. 8

    Pandasデータフレーム-複数の条件計算に基づいて複数の列を作成します

  9. 9

    条件に基づいてパンダデータフレームの複数の列の名前を変更します

  10. 10

    複数の列と行の基準に基づいてRデータフレームを展開します

  11. 11

    列名の複数の基準に基づいてデータフレーム列を抽出します

  12. 12

    前の複数の行/列の値に基づいてデータフレームの行を削除します

  13. 13

    列の複数の値に基づいてデータフレームに新しい行を作成します

  14. 14

    Rの条件に基づいて、データフレームに複数の新しい列を追加します

  15. 15

    Rの複数の列に基づいて2つのデータフレームをマージします

  16. 16

    複数の列間の接続に基づいて、データフレームの行を削除します

  17. 17

    データの個々のセグメントの数に基づいて、データフレームの単一の列を更新します

  18. 18

    単一の列に基づいてパンダのデータフレームを再形成します

  19. 19

    他の列に基づいてデータフレームの列値の一部を変更する

  20. 20

    複数の列としきい値に基づいてデータフレームをマージします

  21. 21

    パンダのデータフレームは、条件に基づいて列の値を変更します

  22. 22

    dplyr :: 2番目の(フィルタリングされた)データフレームに基づいて新しい列を変更します

  23. 23

    複数の列に基づいてRのデータフレーム行を結合します

  24. 24

    列の値に基づいて複数のパンダデータフレームを作成します

  25. 25

    1つの列に基づいて複数のデータフレームを追加します

  26. 26

    複数の列の値に基づいてデータフレームに新しい列を追加する

  27. 27

    Rは、dplyrを使用して列の最大値に基づいてデータフレームを変更します

  28. 28

    他の列の一意の組み合わせに基づいてデータフレーム列の値を変更します

  29. 29

    Daskデータフレーム-区切り文字に基づいて列を複数の行に分割します

ホットタグ

アーカイブ