用零替换缺失值 -2 水平不同的列 r
Replace missing values with zero -2 levels different columns r
我有一个包含多列的数据集。我想用 when JOB = Student and HOME_VAL = 0
替换缺失值
LOGIC if JOB == Student and HOME_VAL == ' '
然后 HOME_VAL==0
if(DT$JOB == 'Student' & DT$HOME_VAL=='') {
DT$HOME_VAL<-0
}
数据
HOME_VAL JOB
99 Student
0 Home Maker
Student
00 Home Maker
Student
000 Student
000 Professor
正在寻找
HOME_VAL JOB
99 Student
0 Home Maker
0 Student
00 Home Maker
0 Student
000 Student
000 Professor
我们可以使用dplyr::mutate
:
library(dplyr);
library(magrittr);
df %>%
mutate_if(is.factor, as.character) %>%
mutate(HOME_VAL = ifelse(HOME_VAL == "" & JOB == "Student", 0, HOME_VAL))
# HOME_VAL JOB
#1 99 Student
#2 0 Home Maker
#3 0 Student
#4 00 Home Maker
#5 0 Student
#6 000 Student
#7 000 Professor
解释:mutate_if
将factor
列转换为character
列,mutate
+ifelse
按照你的逻辑进行替换。
或以 R 为基数:
df$HOME_VAL = as.character(df$HOME_VAL);
df$HOME_VAL = ifelse(df$HOME_VAL == "" & df$JOB == "Student", 0, df$HOME_VAL);
示例数据
df <- read.table(text =
"HOME_VAL JOB
99 Student
0 'Home Maker'
'' Student
00 'Home Maker'
'' Student
000 Student
000 Professor", header = T)
我有一个包含多列的数据集。我想用 when JOB = Student and HOME_VAL = 0
替换缺失值LOGIC if JOB == Student and HOME_VAL == ' ' 然后 HOME_VAL==0
if(DT$JOB == 'Student' & DT$HOME_VAL=='') {
DT$HOME_VAL<-0
}
数据
HOME_VAL JOB
99 Student
0 Home Maker
Student
00 Home Maker
Student
000 Student
000 Professor
正在寻找
HOME_VAL JOB
99 Student
0 Home Maker
0 Student
00 Home Maker
0 Student
000 Student
000 Professor
我们可以使用dplyr::mutate
:
library(dplyr);
library(magrittr);
df %>%
mutate_if(is.factor, as.character) %>%
mutate(HOME_VAL = ifelse(HOME_VAL == "" & JOB == "Student", 0, HOME_VAL))
# HOME_VAL JOB
#1 99 Student
#2 0 Home Maker
#3 0 Student
#4 00 Home Maker
#5 0 Student
#6 000 Student
#7 000 Professor
解释:mutate_if
将factor
列转换为character
列,mutate
+ifelse
按照你的逻辑进行替换。
或以 R 为基数:
df$HOME_VAL = as.character(df$HOME_VAL);
df$HOME_VAL = ifelse(df$HOME_VAL == "" & df$JOB == "Student", 0, df$HOME_VAL);
示例数据
df <- read.table(text =
"HOME_VAL JOB
99 Student
0 'Home Maker'
'' Student
00 'Home Maker'
'' Student
000 Student
000 Professor", header = T)