簡體   English   中英

通過r中data.table中其他列的值創建一個新列

[英]Create a new column by other column's value in data table in r

假設我有一個這樣的 data.table

| x | y |
| - | - |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |

我需要根據 x 的值創建另一列 z:如果其 x>=1 且 x<=3,則該值應為 1,否則為 0

| x | y | z |
| - | - | - |
| 1 | 1 | 1 |
| 2 | 2 | 1 |
| 3 | 3 | 1 |
| 4 | 4 | 0 |
| 5 | 5 | 0 |

我試圖使用dt[, z:=,]但我不確定如何將條件添加到 function

使用ifelse function

dt[, z := ifelse(x >= 1 & x <= 3, 1, 0)]

或者,更直接地說,您可以將邏輯條件強制轉換為整數——TRUE 將為 1,FALSE 將為 0:

dt[, z := as.integer(x >= 1 & x <= 3)]

或者使用data.table的助手%between%

dt[, z := as.integer(x %between% c(1, 3))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM