[英]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.