我有5個變量,var1
,var2
等,這都被編碼成這樣:結合幾個二元變量
Factor w/ 2 levels "no","yes": 2 1 1 2 1 2 1 1 1 1 ...
我想將它們合併成一個。到目前爲止,我只使用:
comb_drug <- with(dt1,interaction(var1, var2, var2, var4, var5))
它給出了一個32級的變量。我現在想創建一個變量具有以下3個層次:
- 所有5是
- 任何4是
- 不到4是
什麼是最好的方式去做這個 ?下面是一些示例數據:
var1 <- as.factor(c(2,2,1,2,2,1,2,1,2,2))
var2 <- as.factor(c(2,1,2,2,2,1,2,2,2,2))
var3 <- as.factor(c(2,2,1,2,2,2,2,2,1,2))
var4 <- as.factor(c(2,2,1,2,2,2,2,2,1,2))
var5 <- as.factor(c(2,2,2,1,2,1,2,1,1,2))
dt <- data.frame(var1,var2,var3,var4,var5)
for (i in 1:5) {
levels(dt[,i]) <- c("no","yes")
}
var1 var2 var3 var4 var5
1 yes yes yes yes yes
2 yes no yes yes yes
3 no yes no no yes
4 yes yes yes yes no
5 yes yes yes yes yes
6 no no yes yes no
7 yes yes yes yes yes
8 no no yes yes no
9 yes yes no no no
10 yes yes yes yes yes
我反而喜歡
newvar
1 allyes
2 4yes
3 lessthan4yes
4 4yes
5 allyes
6 lessthan4yes
7 allyes
8 lessthan4yes
9 lessthan4yes
10 allyes