使用用户定义的函数在 r 中应用

sapply in r with user defined function

我的代码如下:

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) 时有效,但在我 运行 时无效。

我同意 cut 解决方案更好。为了好玩,以下是解决您当前问题的方法:

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 {
    rlevel <- "VERY HIGH"
  }
  return (rlevel)
}
k <- USArrests$UrbanPop

q <- quantile(k, c(.25,.5,.75))


newCol <- sapply(k,AssignLevel,q)