使用cut()
函数,我知道如何采用数字向量并根据半开区间对其进行分类
(0, 10], (10. 19], (19, 20], (20, 26], etc...
或
[0, 10), [10, 19), [19, 20), [20, 26), etc....
如何将具有闭合和开放间隔组合的矢量分组,例如
(0, 10), [10, 20], (20, 29], (29, 48), [48], (48, 56), etc...?
请注意,我想创建一个由单个数字组成的封闭间隔。
有没有办法使用cut()
函数或其他函数来执行此操作?是时候换新功能了吗?!
修改
boyScale <- function(x) {
ret <-
ifelse(x < 16.3, 1,
ifelse(x = 16.3, 2,
ifelse(x < 20.8, 3,
ifelse(x = 20.8, 4,
ifelse(x < 21.91, 5,
ifelse(x = 21.91, 6,
ifelse(x < 28.2, 7,
ifelse(x = 28.2, 8,
ifelse(x < 37.3, 9,
ifelse(x = 37.3, 10, 11))))))))))
return(ret)
}
我尝试使用数字25.24,并收到以下错误消息
Error in ifelse(x = 16.3, 2, ifelse(x < 20.8, 3, ifelse(x = 20.8, 4, ifelse(x < : unused argument (x = 16.3)
有什么想法吗?
答案 0 :(得分:1)
我发现使用包fancycut可以轻松解决此问题。
fancycut(x,c('(0,10)','[10,20]','(20,29)',...))
答案 1 :(得分:0)
如果你的输入数据和所需的没有。箱子都不是太大,你可以使用嵌套的ifelse
s。
y <- ifelse(x < 10, 1,
ifelse(x <= 20, 2,
ifelse(x < 30, 3,
ifelse(x < 48, 4,
ifelse(x <= 48, 5, .....)))))
您可以利用数据中的任何结构吗?