在 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")
我从 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")