使用 R 的 cut 函数后如何给出 class 的值
How to give a value of class after using cut function with R
我想用相应的classes的平均值来改变由括号中的两个值定义的class。这是情况:
我正在使用 "cut" 将变量拆分为 10 classes.
data$classe_Ta<-cut(data$Ta,10,include.lowest = TRUE)
table(data$classe_Ta)
结果给出:
> [-12.4,-7.81] (-7.81,-3.25] (-3.25,1.31] (1.31,5.87] (5.87,10.4] (10.4,15] (15,19.6] (19.6,24.1] (24.1,28.7] (28.7,33.3]
59 490 2783 6028 7561 7051 5090 1400 211 15
我想用每个 class 的平均值替换我的数据框中的 [-12.4,-7.81], (-7.81,-3.25]; 这意味着 -10.105, - 5.53 ....需要为每个 class 计算。
任何关于如何做到这一点的建议将不胜感激。
提前致谢!
我们可以使用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)
我想用相应的classes的平均值来改变由括号中的两个值定义的class。这是情况: 我正在使用 "cut" 将变量拆分为 10 classes.
data$classe_Ta<-cut(data$Ta,10,include.lowest = TRUE)
table(data$classe_Ta)
结果给出:
> [-12.4,-7.81] (-7.81,-3.25] (-3.25,1.31] (1.31,5.87] (5.87,10.4] (10.4,15] (15,19.6] (19.6,24.1] (24.1,28.7] (28.7,33.3]
59 490 2783 6028 7561 7051 5090 1400 211 15
我想用每个 class 的平均值替换我的数据框中的 [-12.4,-7.81], (-7.81,-3.25]; 这意味着 -10.105, - 5.53 ....需要为每个 class 计算。 任何关于如何做到这一点的建议将不胜感激。 提前致谢!
我们可以使用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)