r - 如何创建范围级别(例如 0-10、10-30、30-100 等)并使用 R 从一组数字中标记范围?
问题描述
信息是从 .csv 文件加载的,内容广泛
x=loan$Debt.To.Income.Ratio
x=factor(c("0.00-0.10","0.11-0.30", ">0.31"),
levels=c("Low", "Medium", "High")
)
table(x)
输出
低 中 高 0 0 0
由于某种原因,没有一个值被分类为低中和高级别。
解决方案
您可以使用cut
, 并指定breaks
参数。我将使用 dplyr 因为它使转换变得容易,但是如果需要,您可以使用 base R 来制作分组变量:
library(dplyr)
df <- mtcars %>%
select(mpg) %>%
mutate(group = cut(mtcars$mpg, breaks = c(10,15,20,25,30,35)))
head(df, 10)
# A tibble: 10 x 2
# mpg group
# <dbl> <fct>
# 1 21 (20,25]
# 2 21 (20,25]
# 3 22.8 (20,25]
# 4 21.4 (20,25]
# 5 18.7 (15,20]
# 6 18.1 (15,20]
# 7 14.3 (10,15]
# 8 24.4 (20,25]
# 9 22.8 (20,25]
# 10 19.2 (15,20]
levels(df$group)
# [1] "(10,15]" "(15,20]" "(20,25]" "(25,30]" "(30,35]"
推荐阅读
- android - Android 应用,如何支持 64 位架构?
- javascript - 根据另一个对象列表检查对象列表中的重复值
- c++ - 如何将用户输入存储在数组中?
- python-3.x - 从另一个接受变量的函数中获取变量值
- python - 键入python时如何区分实例变量和类变量?
- java - 在recyclerview中向下滚动时如何切换标签
- c++ - 试图让条形码扫描仪与 Arduino 一起使用
- php - 如何在 Laravel 中覆盖存储类方法“Storage::has()”和“Storage::get()”?
- qt - 相机 不保存拍摄的图像
- python - 你将如何删除这 4 行在 python 中的重复性?