在r中将值更改为布尔值

时间:2015-06-30 13:11:26

标签: r boolean

我有以下数据框:

head(data)
      Date Avg.Join.Delay Min.Join.Dely Max.Join.Dely    ACCOUNT STB_TYPE  MARKET
1 6/5/2015        1194.25           830          2072 2067215110  IPH8010 Seattle
2 6/5/2015        1215.00           945          1755 2067215110  IPW8000 Seattle
3 6/5/2015        1666.00          1666          1666 2069370920  IPH8010 Seattle
4 6/5/2015         546.00           531           561 2069376365  IPW8000 Seattle
5 6/5/2015         648.00           648           648 3032004397  ISB7005  Denver
6 6/5/2015         589.50           589           590 3033229232  IPH8005  Denver

到目前为止,我所做的是(我的值以500开头):

quantile(data[,2], probs=0.5)
50% 
661    
for (i in 500:661)
data$Avg.Join.Delay[substr(data$Avg.Join.Delay,1,3)==i] <- '0%-50% Error'
for (i in 662:dim(data))
data$Avg.Join.Delay[substr(data$Avg.Join.Delay,1,3)==i] <- '50%-100% Error'

这种方式有效(不包括几个值)所以我想知道是否有更好/更正的方法。

1 个答案:

答案 0 :(得分:2)

data$Avg.Join.Delay.boolean <- data$Avg.Join.Delay<=median(data$Avg.Join.Delay)

这会实现你想要的吗?

或者,如果你想要问题中的文本,而不是实际的布尔值,你可以

value2insert <- c("51-100% Error", "0-50% Error")
logical.index <- (data$Avg.Join.Delay<=median(data$Avg.Join.Delay))+1
data$Avg.Join.Delay.boolean <- value2insert[logical.index]