【发布时间】:2021-09-06 11:03:18
【问题描述】:
如果我没有指定任何边界而只写了所需的分割数,如何知道 R 中的 cut 函数生成的切割值(边界)是多少?
complexes_data2$FlatPlanAmount <- cut(complexes_data2$FlatPlanAmount, 3,labels = FALSE)
什么是边框值?
【问题讨论】:
标签: r cut categorical-data
如果我没有指定任何边界而只写了所需的分割数,如何知道 R 中的 cut 函数生成的切割值(边界)是多少?
complexes_data2$FlatPlanAmount <- cut(complexes_data2$FlatPlanAmount, 3,labels = FALSE)
什么是边框值?
【问题讨论】:
标签: r cut categorical-data
文档在详细信息部分的第一句中说,以下内容。我的重点。
详情
当断点指定为单个数字时,将数据的范围划分为等长的断点,然后将外部限制移开范围的0.1%,以确保极值两者都在休息间隔内。
因此,使用range 和diff 计算范围长度,然后将其除以中断数。将该值的倍数加到要断点的向量的min,得到断点。
第一个测试数据。
set.seed(2021)
x <- runif(100, 0, 10)
y <- cut(x, 3, labels = FALSE)
现在计算休息时间。
brks <- min(x) + (1:2)*(diff(range(x)) / 3)
brks
#[1] 3.428711 6.690577
z <- cut(x, breaks = c(-Inf, brks, Inf), labels = FALSE)
identical(y, z)
#[1] TRUE
这是对x 和breaks 的任何值执行此操作的函数。
where <- function(x, breaks, na.rm = TRUE){
min(x, na.rm = na.rm) + seq_len(breaks)[-breaks]*(diff(range(x, na.rm = na.rm)) / breaks)
}
where(x, 3)
#[1] 3.428711 6.690577
【讨论】: