[英]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
則為3
, z
看起來像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.