R 使用;级别“;陈述

R 使用;级别“;陈述,r,R,关于使用“级别”跨数据框的列折叠因子的快速问题。下面是基本数据框的代码 Service<-c("AS","AS","PS","PS","RS","RS","ES","ES") Year<-c("2015","2016","2015","2016","2015","2016","2015","2016") Q1<-c("Dissatisfied","Satisfied","Satisfied","Neutral","Dissatisfied","Dissatisfied","

关于使用“级别”跨数据框的列折叠因子的快速问题。下面是基本数据框的代码

Service<-c("AS","AS","PS","PS","RS","RS","ES","ES")
 Year<-c("2015","2016","2015","2016","2015","2016","2015","2016")
 Q1<-c("Dissatisfied","Satisfied","Satisfied","Neutral","Dissatisfied","Dissatisfied","Satisfied","Neutral")
Q2<-c("Dissatisfied","Neutral","Satisfied","Dissatisfied","Dissatisfied","Neutral","Satisfied","Satisfied")
Example<-data.frame(Service,Year,Q1,Q2)

服务我们可以使用
lappy
。创建要子集的列的索引。在这里,列名以“Q”开头,后跟数字(
^Q\\d+
)。使用
grep
获取索引,然后在这些列上使用
lappy
,并使用
library(car)
中的
recode
更改
级别

nm1 <- grep("^Q\\d+", names(Example))
Example[nm1] <-  lapply(Example[nm1], recode, 
         'c("Satisified", "Neutral")= "Satisfied"')

nm1我们可以使用
lappy
。创建要子集的列的索引。在这里,列名以“Q”开头,后跟数字(
^Q\\d+
)。使用
grep
获取索引,然后在这些列上使用
lappy
,并使用
library(car)
中的
recode
更改
级别

nm1 <- grep("^Q\\d+", names(Example))
Example[nm1] <-  lapply(Example[nm1], recode, 
         'c("Satisified", "Neutral")= "Satisfied"')

nm1我认为你的手术不可能。我想我记得,这种折叠因子级别的方式被严重反对,它会抛出一个错误,但由于它适用于一列,它应该(并且确实)适用于多列

 Example[3:4] <- lapply(Example[3:4], 'levels<-', c("Dissatisfied","Satisfied","Satisfied") )
 Example
  Service Year           Q1           Q2
1      AS 2015 Dissatisfied Dissatisfied
2      AS 2016    Satisfied    Satisfied
3      PS 2015    Satisfied    Satisfied
4      PS 2016    Satisfied Dissatisfied
5      RS 2015 Dissatisfied Dissatisfied
6      RS 2016 Dissatisfied    Satisfied
7      ES 2015    Satisfied    Satisfied
8      ES 2016    Satisfied    Satisfied

示例[3:4]我认为您的操作不可能。我想我记得,这种折叠因子级别的方式被严重反对,它会抛出一个错误,但由于它适用于一列,它应该(并且确实)适用于多列

 Example[3:4] <- lapply(Example[3:4], 'levels<-', c("Dissatisfied","Satisfied","Satisfied") )
 Example
  Service Year           Q1           Q2
1      AS 2015 Dissatisfied Dissatisfied
2      AS 2016    Satisfied    Satisfied
3      PS 2015    Satisfied    Satisfied
4      PS 2016    Satisfied Dissatisfied
5      RS 2015 Dissatisfied Dissatisfied
6      RS 2016 Dissatisfied    Satisfied
7      ES 2015    Satisfied    Satisfied
8      ES 2016    Satisfied    Satisfied

示例[3:4]感谢您的回答。快速提问,为什么代码需要在“levelsThanks”周围加括号来回答。快速提问,为什么代码需要在“级别”周围加括号