簡體   English   中英

在 R 中創建條件變量

[英]creating conditional variable in R

對於以下數據集

> data
   x1 x2 x3
1   1  0  0
2   0  1  0
3   0  0  1
4   0  0  1
5   1  0  0
6   0  1  0
7   1  0  0
8   0  1  0
9   0  0  1
10  1  0  0

我想創建新變量z ,如果x1=1 1 1 ,如果x2=1則為2 ,如果x3=1則為3z看起來像z=c(1,2,3,3,1,2,1,2,3,1) 任何幫助表示贊賞

假設在給定行中只有一個 1,如共享數據所示,我們可以使用max.col

data$z <- max.col(data)
data
#   x1 x2 x3 z
#1   1  0  0 1
#2   0  1  0 2
#3   0  0  1 3
#4   0  0  1 3
#5   1  0  0 1
#6   0  1  0 2
#7   1  0  0 1
#8   0  1  0 2
#9   0  0  1 3
#10  1  0  0 1

如果給定行中有多個 1,請探索?max.col ties.method的 ties.method,它提供了獲取“第一個”或“最后一個”1 的選項。

如果我們想在所有行值為 0 的情況下返回 0,我們可以這樣做:

data$z <- max.col(data) * +(rowSums(data == 1) > 0)

暫無
暫無

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

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