[英]R , rattle , recode
拨浪鼓
这是我的数据:
KK<- c('yes','no','yes','yes','dp')
LL<- c('dp','no','yes','yes','no')
II<- c('yes','dp','no','no','no')
JJ<- c('yes','no','yes','yes','dp')
AA<- c('no','dp','yes','yes','yes')
MYDATA <- data.frame(KK,LL,II,JJ,AA);MYDATA
目标:
将“ no”重新编码为“ 0.0”
将「是」重新编码为「1.0」
将「dp」重新编码为「0.5」
问题:如何使用包“ rattle”在r中重新编码
假设您正在寻找数值结果:
(MYDATA == "dp") / 2 + (MYDATA == "yes")
给予:
KK LL II JJ AA
[1,] 1.0 0.5 1.0 1.0 0.0
[2,] 0.0 0.0 0.5 0.0 0.5
[3,] 1.0 1.0 0.0 1.0 1.0
[4,] 1.0 1.0 0.0 1.0 1.0
[5,] 0.5 0.0 0.0 0.5 1.0
我们可以将“ MYDATA”转换为“矩阵”,通过根据级别顺序将标签指定为“ 0.5、0、1”,然后将“ character”类更改为“ factor”,然后将其分配回“ MYDATA”。 []
将确保结构保持不变。
MYDATA[] <- as.numeric(as.character(factor(as.matrix(MYDATA),
labels=c(0.5, 0, 1))))
MYDATA
# KK LL II JJ AA
#1 1.0 0.5 1.0 1.0 0.0
#2 0.0 0.0 0.5 0.0 0.5
#3 1.0 1.0 0.0 1.0 1.0
#4 1.0 1.0 0.0 1.0 1.0
#5 0.5 0.0 0.0 0.5 1.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.