根据R

时间:2019-03-08 21:53:40

标签: r rename

假设我有一个列data $ code,其值像1234、222F,456Q,1234、1234 ... 现在,我想重命名它们,以便每次出现1234时都是'Model 1',每次出现456Q->'Model X'等。

我试图建立一个for循环,但是它不起作用。也许有一种更简单的方法?

1 个答案:

答案 0 :(得分:0)

在您的示例中,我假设code是一个分类变量,因此您需要做的是更改该变量的级别值。

例如:

id <- c(1,2,3,4,5)
code <- c('1234', '222F', '456Q', '1234', '1234')
data <- data.frame(id, code)
data

 id code
1  1 1234
2  2 222F
3  3 456Q
4  4 1234
5  5 1234

levels(data$code)[levels(data$code)=='1234'] <- 'Model 1'
levels(data$code)[levels(data$code)=='456Q'] <- 'Model X'
data

   id    code
1  1 Model 1
2  2    222F
3  3 Model X
4  4 Model 1
5  5 Model 1

您只需为需要更改的每个级别重复一次。