【发布时间】:2016-09-20 17:20:41
【问题描述】:
我的代码如下:
data("USArrests")
AssignLevel <- function(p,quartiles)
{
if (p < quartiles[1])
rlevel <-"LOW"
else if (p < quartiles[2])
rlevel <-"MODERATE"
else if (p < quartiles[3])
rlevel <-"HIGH"
else level <-"VERY HIGH"
return (rlevel)
}
k<-USArrests$UrbanPop
k
q<- quantile(USArrests$UrbanPop, c(.25,.5,.75))
newCol <- sapply(USArrests$UrbanPop,AssignLevel(k,q))
我正在尝试将每个州的城市人口值更改为相应的四分位数之一。它在我运行 AssignLevel(k,q) 时有效,但在我运行 sapply 时无效。
【问题讨论】:
-
坦率地说,您似乎应该改用
cut。 -
aye:
cut(USArrests$UrbanPop, breaks=c(min(USArrests$UrbanPop), q, max(USArrests$UrbanPop)), labels=c("LOW", "MODERATE", "HIGH", "VERY HIGH"), include.lowest=TRUE)干净多了。