使用带R的cut函数后如何给出类的值

时间:2016-02-25 10:09:45

标签: r class cut

我想将括号中两个值定义的类更改为相应类的平均值。情况如下: 我正在使用“cut”将一个变量分成10个类。

class Menu < ActiveRecord::Base
  validates :menu_date, format: {
    with: /\d{4}-\d{2}-\d{2}(\s\d{2}:\d{2}:\d{2})?/,
    message: "only correct date formats are allowed"
  }

end

结果给出:

data$classe_Ta<-cut(data$Ta,10,include.lowest = TRUE)
table(data$classe_Ta)

我想用我的数据框中的[-12.4,-7.81],( - 7.81,-3.25)替换每个类的平均值;这意味着-10.105,-5.53 ....需要为每个班级计算。 任何有关如何做到这一点的建议将不胜感激。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我们可以使用str_extract提取所有数字元素,将字符串转换为numeric,获取mean

v1 <-  sapply(str_extract_all(levels(data$classe_Ta), 
      "-?[0-9]+(\\.[0-9]+)?"), function(x) mean(as.numeric(x)))

data$Mean <- v1[as.numeric(data$classe_Ta)]

数据

set.seed(24)
data <- data.frame(Ta = sample(-50:100, 20, replace=TRUE))
data$classe_Ta<-cut(data$Ta,10,include.lowest = TRUE)