r - 按区间对数值向量进行分类,也包括单个值
问题描述
我有一个数字范围从 0 到 1 的向量,两者都包括在内。我想创建一个包含三个类别的表:0、(0, 1)、1。我曾想过使用 cut 如下:
# Example data
v <- c(0.68, 0.70, 0.95, 0.15, 0, 0.21, 0.14, 0, 1, 1)
# Table using cut
table(cut(v, c(-Inf, 0, 1, Inf)))
# Output
(-Inf,0] (0,1] (1, Inf]
2 8 0
但我还没有弄清楚如何同时为“仅 0”和“仅 1”值创建一个类别。此示例的预期结果是:
# Desired output
(-Inf,0] (0,1) [1, Inf)
2 6 2
有任何想法吗?提前致谢!
解决方案
你不能不手动创建你的垃圾箱cut
吗?
v <- c(0.68, 0.70, 0.95, 0.15, 0, 0.21, 0.14, 0, 1, 1)
table(
factor(
ifelse(v == 0, "0", ifelse(v == 1, "1", "(0,1)")),
levels = c("0", "(0,1)", "1")
)
)
输出:
0 (0,1) 1
2 6 2
推荐阅读
- c++ - C++ 字符串连接有时会失败
- sql - 为权限设置数据库表的最佳方法
- c++ - 如何在事务中将两个文件写入磁盘
- sparql - 无法从本体中检索实例
- anaconda - 变量资源管理器扩展导致与 dill 包冲突
- javascript - 将对象附加到数组时使用扩展符号的正确方法?
- tensorflow - 用 tf.data 替换基于队列的输入管道
- python - 如何重新缩放图像坐标的信息以处理类似图像的缩放版本
- java - Springboot中的某些字段未在JSON中解析/反序列化
- .htaccess - 代理后面的 Wildfly 14 的 RewriteRule -> 404