首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个分类变量

创建一个分类变量
EN

Stack Overflow用户
提问于 2021-02-15 22:11:29
回答 3查看 68关注 0票数 3

我想将一个变量与下一个条件进行分类:

0- 4:“失败”5- 7:“好”8- 10:“优秀”

我试过使用编码函数

变量的值是数字的。

代码语言:javascript
复制
segur <- data$segur 

使用重新编码创建了一个新变量

代码语言:javascript
复制
dt1 <- recode(segur, "c(0,4)='suspenso';c(5, 7)='aceptable';c(8,10)='excelente'; else='NA'")
dt1

我怎么才能修好?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-15 22:22:14

factor在基本R中的应用

数据:

代码语言:javascript
复制
# 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)

代码:

代码语言:javascript
复制
# 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))
票数 0
EN

Stack Overflow用户

发布于 2021-02-15 22:32:55

我想您可以像下面这样使用cut

代码语言:javascript
复制
cut(segur, c(0, 4, 7, 10), labels = c("fail", "good", "excellent"))

示例

代码语言:javascript
复制
> 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
票数 0
EN

Stack Overflow用户

发布于 2021-02-15 22:34:20

下面是使用fmtr包的解决方案。可以使用valuecondition函数创建分类格式,然后使用fapply函数将格式应用于数值数据。下面是一个示例:

代码语言:javascript
复制
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      good
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66216042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档