Rのif / elseステートメントを使用してデータフレームに関数を適用します

woshishui

次のようなデータフレームがあります

data.1 <- data.frame(
  X1 = 6:10,
  X2 = 1:5,
  X3 = c(TRUE,FALSE,TRUE,FALSE,TRUE)
)

  X1 X2    X3
1  6  1  TRUE
2  7  2 FALSE
3  8  3  TRUE
4  9  4 FALSE
5 10  5  TRUE

次のロジックで新しい列X4を作成したいと思います。

if X3==NULL then X4=NULL
elseif X3==TRUE then X4=X1+X2 
else X4=X1-X2

前もって感謝します

ジョナサン・キャロル

lapply あなたのデータがリストであるときのためのものであり、それはあなたがしていることではありません。

まず、にNULLエントリが見つかりませんdata.frameNA、確かに、しかしそうではないNULLので、あなたは回避する必要がありis.na()ます。次に、テストする必要はありませんif(x==TRUE)Rはの使い方を知っていますif(x)さて、ビジネスに移りましょう。あなたはあなたと一緒にそこにほとんどの道を歩んでいましたifelseの出力にベクトルを割り当てることができ、ベクトルifelse化が自動的に処理されます。

data.1$X4 <- ifelse(is.na(data.1$X3), 
                    NA, 
                    ifelse(data.1$X3==TRUE,
                           data.1$X1+data.1$X2,
                           data.1$X1-data.1$X2))

data.1
##   X1 X2    X3 X4
## 1  6  1  TRUE  7
## 2  7  2 FALSE  5
## 3  8  3  TRUE 11
## 4  9  4 FALSE  5
## 5 10  5  TRUE 15

しかし、それは醜いです。dplyr名前空間で列を検索する非標準の評価が含まれているため、列を参照するたびにデータ名を引用する必要がなく、これがはるかにクリーンになります。dplyr::mutate列を変更します。

library(dplyr)
mutate(data.1, X4 = ifelse(is.na(X3), 
                           NA, 
                           ifelse(X3, 
                                  X1+X2, 
                                  X1-X2)))

data.1
##   X1 X2    X3 X4
## 1  6  1  TRUE  7
## 2  7  2 FALSE  5
## 3  8  3  TRUE 11
## 4  9  4 FALSE  5
## 5 10  5  TRUE 15

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

データフレームのリストを使用して列名に関数を適用します

分類Dev

optim()を使用して、データフレームのリストに関数を適用します

分類Dev

ifステートメントを使用した関数を使用して、データフレーム内の数値に対して操作を実行します

分類Dev

rのデータフレームのネストされたリストに関数を適用します

分類Dev

Rを使用してデータフレーム内のすべての要素に条件ステートメントを適用する

分類Dev

関数のリストをRの別のデータフレームの行に適用します

分類Dev

Rのデータフレームのリストに関数を適用します

分類Dev

Rのデータフレームのリストに自己定義関数を適用します

分類Dev

python関数でIF-ELIF-ELSEステートメントをパンダデータフレームのすべての行に正しく適用するにはどうすればよいですか?

分類Dev

pandasデータフレームに関数を適用して、他の列/セルに応じて列/セルのリストをスキャンします

分類Dev

データフレームのリストの列に関数を適用し、結果を追加します

分類Dev

ベクトル出力を持つ関数をデータフレームのリストに適用します

分類Dev

ユーザー定義関数をデータフレームのリストに適用します

分類Dev

データフレームのリストに関数を適用し、結果を書き戻します

分類Dev

データフレームの各行に関数を適用し、同時にカウンターをインクリメントします

分類Dev

データフレームの各サブセットにカスタム関数を適用し、データフレームを作成します

分類Dev

データフレームのリスト内の対応する要素に関数を適用します

分類Dev

データフレームのリストの特定の列に関数を適用します

分類Dev

リスト内のデータフレームの列にいくつかの関数を適用します

分類Dev

データフレームの列に関数を適用します(列はリストです)

分類Dev

データフレームの列に関数を適用します(列はリストです)

分類Dev

リスト内の各データフレームの各要素に関数を適用します

分類Dev

データフレームのリストにdcast()関数を適用します

分類Dev

ループ関数を使用して、データフレームをデータフレームのリストにフィルタリングします

分類Dev

パンダを使用してリストからのデータフレームにフィルターのリストを適用します

分類Dev

リスト内のすべてのデータフレームの特定の列に関数を適用してから、列に値を割り当てます

分類Dev

Rのifステートメントに基づいてデータフレームを定義します

分類Dev

ネストされたifステートメントRを使用して関数を適用します

分類Dev

Pythonの適用関数を使用して列をデータフレームに追加しますか?

Related 関連記事

  1. 1

    データフレームのリストを使用して列名に関数を適用します

  2. 2

    optim()を使用して、データフレームのリストに関数を適用します

  3. 3

    ifステートメントを使用した関数を使用して、データフレーム内の数値に対して操作を実行します

  4. 4

    rのデータフレームのネストされたリストに関数を適用します

  5. 5

    Rを使用してデータフレーム内のすべての要素に条件ステートメントを適用する

  6. 6

    関数のリストをRの別のデータフレームの行に適用します

  7. 7

    Rのデータフレームのリストに関数を適用します

  8. 8

    Rのデータフレームのリストに自己定義関数を適用します

  9. 9

    python関数でIF-ELIF-ELSEステートメントをパンダデータフレームのすべての行に正しく適用するにはどうすればよいですか?

  10. 10

    pandasデータフレームに関数を適用して、他の列/セルに応じて列/セルのリストをスキャンします

  11. 11

    データフレームのリストの列に関数を適用し、結果を追加します

  12. 12

    ベクトル出力を持つ関数をデータフレームのリストに適用します

  13. 13

    ユーザー定義関数をデータフレームのリストに適用します

  14. 14

    データフレームのリストに関数を適用し、結果を書き戻します

  15. 15

    データフレームの各行に関数を適用し、同時にカウンターをインクリメントします

  16. 16

    データフレームの各サブセットにカスタム関数を適用し、データフレームを作成します

  17. 17

    データフレームのリスト内の対応する要素に関数を適用します

  18. 18

    データフレームのリストの特定の列に関数を適用します

  19. 19

    リスト内のデータフレームの列にいくつかの関数を適用します

  20. 20

    データフレームの列に関数を適用します(列はリストです)

  21. 21

    データフレームの列に関数を適用します(列はリストです)

  22. 22

    リスト内の各データフレームの各要素に関数を適用します

  23. 23

    データフレームのリストにdcast()関数を適用します

  24. 24

    ループ関数を使用して、データフレームをデータフレームのリストにフィルタリングします

  25. 25

    パンダを使用してリストからのデータフレームにフィルターのリストを適用します

  26. 26

    リスト内のすべてのデータフレームの特定の列に関数を適用してから、列に値を割り当てます

  27. 27

    Rのifステートメントに基づいてデータフレームを定義します

  28. 28

    ネストされたifステートメントRを使用して関数を適用します

  29. 29

    Pythonの適用関数を使用して列をデータフレームに追加しますか?

ホットタグ

アーカイブ