我想将一个变量与下一个条件进行分类:
0- 4:“失败”5- 7:“好”8- 10:“优秀”
我试过使用编码函数
变量的值是数字的。
segur <- data$segur 使用重新编码创建了一个新变量
dt1 <- recode(segur, "c(0,4)='suspenso';c(5, 7)='aceptable';c(8,10)='excelente'; else='NA'")
dt1我怎么才能修好?
发布于 2021-02-15 22:22:14
factor在基本R中的应用
数据:
# set random seed
set.seed(1L)
# without any NA
x1 <- sample(x = 1:10, size = 20, replace=TRUE)
# with NA
x2 <- sample(x = c(1:10, NA), size = 20, replace=TRUE)代码:
# without any NA
as.character(factor(x1, levels = c(0:10), labels = c(rep("fail", 5), rep("good", 3), rep("excellent", 3)), exclude=NA))
# with NA
as.character(factor(x2, levels = c(0:10), labels = c(rep("fail", 5), rep("good", 3), rep("excellent", 3)), exclude=NA))发布于 2021-02-15 22:32:55
我想您可以像下面这样使用cut
cut(segur, c(0, 4, 7, 10), labels = c("fail", "good", "excellent"))示例
> segur
[1] 6 1 4 -2 -1 10 8 0 5 9
> cut(segur, c(0, 4, 7, 10), labels = c("fail", "good", "excellent"))
[1] good fail fail <NA> <NA> excellent excellent
[8] <NA> good excellent
Levels: fail good excellent发布于 2021-02-15 22:34:20
下面是使用fmtr包的解决方案。可以使用value和condition函数创建分类格式,然后使用fapply函数将格式应用于数值数据。下面是一个示例:
library(fmtr)
# Create sample data
df <- read.table(header = TRUE, text = '
ID segur
1 0
2 8
3 5
4 11
5 7')
# Create format
fmt <- value(condition(x >= 0 & x <=4, "fail"),
condition(x >= 5 & x <=7, "good"),
condition(x >= 8 & x <= 10, "excellent"),
condition(TRUE, NA))
# Apply categorization
df$segur_cat <- fapply(df$segur, fmt)
# View results
df
# ID segur segur_cat
# 1 1 0 fail
# 2 2 8 excellent
# 3 3 5 good
# 4 4 11 <NA>
# 5 5 7 goodhttps://stackoverflow.com/questions/66216042
复制相似问题