gpt4 book ai didi

r - 使用 R 剪切功能 - 中断和标签选项如何工作

转载 作者:行者123 更新时间:2023-12-04 11:55:58 24 4
gpt4 key购买 nike

我一直在寻找“标签是使用“(a,b]”间隔符号构造的)的明确解释——如 cut help file 中所述,这似乎缺乏解释。

最佳答案

所以我测试了一些简单的例子,如下所示:

df <- data.frame(c(1,2,3,4,5,6,7,99))
names(df) <- 'x'
df$cut <- cut(df[ ,1], breaks = c(2,4,6,8), right = TRUE)
df
x cut
# 1 <NA>
# 2 <NA>
# 3 (2,4]
# 4 (2,4]
# 5 (4,6]
# 6 (4,6]
# 7 (6,8]
# 99 <NA>

所以 '(' 表示 x> 左边的中断,'[' 表示 <= (next) 右边的中断,如果一个值低于最低中断,它被标记为 NA,类似地,如果一个值超过最高中断它也被标记为 NA。

接下来测试选项 include.lowest = TRUE
df$cut <- cut(df[ ,1], breaks = c(2,4,6,8), right = TRUE, include.lowest = TRUE)
df
x cut
# 1 <NA>
# 2 [2,4]
# 3 [2,4]
# 4 [2,4]
# 5 (4,6]
# 6 (4,6]
# 7 (6,8]

因此,对于前两次中断之间的第一个 bin,左侧的 '[' 表示 >=(第一次中断),而 ']' 表示 <=(第二次)中断。随后的中断按上述处理。

接下来,可以通过在中断中使用 -Inf 和/或 +Inf 来解决 NA 值,如下所示:
df$cut <- cut(df[ ,1], breaks = c(-Inf,2,4,6,8,+Inf), right = TRUE, include.lowest = TRUE)
df

x cut
# 1 [-Inf,2]
# 2 [-Inf,2]
# 3 (2,4]
# 4 (2,4]
# 5 (4,6]
# 6 (4,6]
# 7 (6,8]
# 99 (8, Inf]

根据以下示例设置 right = FALSE 选项会围绕阈值的意义进行交换:
df$cut <- cut(df[ ,1], breaks = c(-Inf,2,4,6,8,+Inf), right = FALSE)
df
# x cut
# 1 [-Inf,2)
# 2 [2,4)
# 3 [2,4)
# 4 [4,6)
# 5 [4,6)
# 6 [6,8)
# 7 [6,8)
# 99 [8, Inf)

最后,如果您愿意,标签选项允许阈值的自定义名称......
lbls <- c('x<=2','2<x<=4','4<x<=6','6<x<=8','x>8')
df$cut <- cut(df[ ,1], breaks = c(-Inf,2,4,6,8,+Inf), right = TRUE, include.lowest = TRUE, labels = lbls)
df
x cut
# 1 x<=2
# 2 x<=2
# 3 2<x<=4
# 4 2<x<=4
# 5 4<x<=6
# 6 4<x<=6
# 7 6<x<=8
# 99 x>8

关于r - 使用 R 剪切功能 - 中断和标签选项如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56721479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com