在 R 中重新编码变量时出错

Error in recoding vars in R

我从 Excel 导入了一个文件,导入后具有以下 str

str(mydata)
$ Injury   : chr  "MMCAI" "MMCAI" "MMCAI" "MMCAI" ...
$ Na_RR    : num  161 152 152 150 143 ...
$ place    : chr  "core" "core" "core" "core" ...

现在我想创建 5 个不同的组,组合变量 "Injury" 和 "place" 我有这个代码

mydata$group[mydata$Injury=="MMCAI" & mydata$place=="core"]<- "IC"

但是,在通过代码后,我得到了分类为 NA 的观察结果 即:

 231    core    MMCAI   138.8168    3.253879    core    IC
 232    core    MMCAI   142.7655    3.096850    core    NA
 233    core    MMCAI   141.1135    3.066894    core    NA
 234    core    MMCAI   137.1993    2.922434    core    NA
 235    core    MMCAI   138.3765    2.848378    core    NA

我找不到错误... 任何帮助将不胜感激

谢谢

如果相关变量有 leading/lagging 个空格,则可能会发生这种情况

 mydata$group[with(mydata, Injury=='MMCAI' & place=='core')] <- 'IC'
 mydata
 #   Na_RR place  Injury group
 #1   231  core   MMCAI    IC
 #2   232  core  MMCAI   <NA>
 #3   233  core   MMCAI  <NA>
 #4   234  core  MMCAI   <NA>
 #5   235  core   MMCAI  <NA>
 #6   239  core   MMCPI  <NA>

当我们删除 leading/lagging 个空格时,它应该可以工作

library(stringr)
mydata[c('place', 'Injury')] <- lapply(mydata[c('place', 'Injury')], str_trim)
mydata$group[with(mydata, Injury=='MMCAI' & place=='core')] <- 'IC'
mydata
#  Na_RR place Injury group
#1   231  core  MMCAI    IC
#2   232  core  MMCAI    IC
#3   233  core  MMCAI    IC
#4   234  core  MMCAI    IC
#5   235  core  MMCAI    IC
#6   239  core  MMCPI  <NA>

其他选项是使用 grep 而不删除空格。

数据

mydata <- structure(list(Na_RR = c(231L, 232L, 233L, 234L, 235L,
 239L), 
place = c("core", "core", "core", "core", "core", "core"), 
Injury = c("MMCAI", "MMCAI ", " MMCAI", " MMCAI ", " MMCAI", 
"MMCPI")), .Names = c("Na_RR", "place", "Injury"),
row.names = c(NA,-6L), class = "data.frame")