用 R 将列的类数修改为分位数组
Posted
技术标签:
【中文标题】用 R 将列的类数修改为分位数组【英文标题】:Modify the number of classes of a column to quantile groups with R 【发布时间】:2021-03-02 06:20:46 【问题描述】:我在将列中的数据聚类为 4 个组时遇到了困难,这些组指的是分位数百分比。有人可以帮我吗? 我在下面列出了我不成功的尝试。
第 1 次尝试:
data$Temperatura <- cut(data$Temperatura, breaks = c(96.3, 97.8, 98.7, 100,8),
labels = c(1,2,3,4))
第 2 次尝试:
data$Temperatura = data.frame(1 = c(96.3, 97.8, 98.7, 100,8))
data$Temperatura <- cut(Temperatura, c(96.3, 97.8, 98.7, 100,8))
尝试第 3 次:
sapply(data, class)
range(Temperatura)
quantile(data$Temperatura)
提前谢谢你!
【问题讨论】:
你的最后一个分位数8
看起来很奇怪,除非我遗漏了什么,否则可能是错误的。
【参考方案1】:
这能满足你的需求吗?
# example data
Temperatura <- runif(30, 90, 110)
# cut by quantile
cTemperatura <- cut(Temperatura,
breaks=quantile(Temperatura),
labels = as.character(1:4),
include.lowest = TRUE)
# display
setNames(round(Temperatura,1), cTemperatura)
# 1 4 3 4 2 1 1 4 3 2 1 1 3 3
# 92.6 107.2 99.2 108.4 97.5 94.6 92.1 108.9 101.2 95.2 91.0 94.4 104.8 104.0
# 2 2 1 4 4 2 3 3 4 3 2 2 1 4
# 96.5 97.5 90.3 107.7 107.0 95.6 106.0 102.9 109.8 98.6 98.4 95.3 90.7 106.7
# 4 1
#108.5 93.5
【讨论】:
以上是关于用 R 将列的类数修改为分位数组的主要内容,如果未能解决你的问题,请参考以下文章
R语言vtreat包自动处理dataframe的缺失值使用分组的中位数来标准化数据列中每个数据的值(和中位数表连接并基于中位数进行数据标化)计算数据列的中位数或者均值并进行数据标准化
R语言colSums函数rowSums函数colMeans函数rowMeans函数colMedians函数rowMedians计算dataframe行或者列的加和均值中位数实战