簡體   English   中英

重新編碼變量R

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

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