我有以下数据框:
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'
这种方式有效(不包括几个值)所以我想知道是否有更好/更正的方法。
答案 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]