[英]Recode variables R
我有一個數據集,看起來像:
x1=c(0,2,1,3,0)
x2=c(3,2,0,0,1)
x3=c(0,2,1,0,0)
d=cbind(x1,x2,x3)
並且我想將x1和x2中的0替換為4(不包括x3),以便數據數據看起來像:
> d
x1 x2 x3
[1,] 4 3 0
[2,] 2 2 2
[3,] 1 4 1
[4,] 3 4 0
[5,] 4 1 0
如何在基本軟件包中執行此操作?
有多種方法可以這樣做。 這是一個:
d[,1:2][d[,1:2]==0] <- 4
第一個方括號告訴R將操作應用於第一和第二列。 第二個括號告訴R條件(第一列或第二列為“ 0”)。 在箭頭的后面,您具有要分配給滿足條件的條目的新值。
從技術上講,當d[,1:2]==0
的各個字段為“ 0”時, d[,1:2]==0
部分創建一個布爾矩陣(具有兩列),其中條目為TRUE
。 然后將此布爾矩陣應用於d的前兩列,作為分配4的邏輯索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.