R:用两个不同的值替换缺失值(NAs)

R:用两个不同的值替换缺失值(NAs),r,na,missing-data,recode,R,Na,Missing Data,Recode,我可能把事情搞得太复杂了——我很想知道是否有更简单的方法来解决这个问题。我有一个数据框(df),有5654个观察值——1332个是外国出生的,4322个是加拿大出生的 变量df$YR_IMM捕获:“您是在哪一年来到加拿大居住的?” 请参见以下每个移民年的观察值分布表(df$YR\u IMM): 当然,这些人都是在国外出生的(平均值=1985年),但有348名外国出生的人失踪。总共有4670个NAs也包括加拿大出生的受试者 如何对这些df$YR\u IMMNAs进行编码,以使 348 (NA) -

我可能把事情搞得太复杂了——我很想知道是否有更简单的方法来解决这个问题。我有一个数据框(df),有5654个观察值——1332个是外国出生的,4322个是加拿大出生的

变量
df$YR_IMM
捕获:“您是在哪一年来到加拿大居住的?” 请参见以下每个移民年的观察值分布
表(df$YR\u IMM)

当然,这些人都是在国外出生的(平均值=1985年),但有348名外国出生的人失踪。总共有4670个NAs也包括加拿大出生的受试者

如何对这些
df$YR\u IMM
NAs进行编码,以使

348 (NA) --> 1985
4322(NA) --> 100
此外,状态由
df$brthcon
0=“出生在加拿大”和
1=“出生在加拿大境外”给出

希望这是有意义的-谢谢

编辑:这就是解决方案->

df$YR\u IMM[is.na(df$YR\u IMM)&df$brthcon==0]请尝试以下代码:

df$YR_IMM[is.na(df$YR_IMM) & df$Brthcoun == 0] <- 100
df$YR_IMM[is.na(df$YR_IMM) & df$Brthcoun == 1] <- 1985
df$YR\u IMM[is.na(df$YR\u IMM)&df$Brthcoun==0]尝试以下代码:

df$YR_IMM[is.na(df$YR_IMM) & df$Brthcoun == 0] <- 100
df$YR_IMM[is.na(df$YR_IMM) & df$Brthcoun == 1] <- 1985

df$YR\u IMM[is.na(df$YR\u IMM)&df$Brthcoun==0]类似的方法也应该有效:

df$YR_IMM <- ifelse(is.na(df$YR_IMM) & df$Brthcoun == 0, 100, 1985)   

df$YR\u IMM类似的方法也应该有效:

df$YR_IMM <- ifelse(is.na(df$YR_IMM) & df$Brthcoun == 0, 100, 1985)   

df$YR\u IMM只是想澄清一下,您试图用基于另一个变量的值
1985
100
替换NAs?变量名称是什么?您好,Aziz,我不是基于另一个变量替换。我试图在变量内替换-就像将NAs重新编码到1985或100中一样。这有意义吗?您如何理解ant决定在1985年之前替换哪个348 NAs?随机选择?第一个348?…?我的理解是,对于外国出生的人,您想用
1985
替换NAs,对于加拿大出生的人,用
100
替换NAs?如果这是正确的,存储外国出生/加拿大出生状态的变量是什么?谢谢Aziz!是的,100代表“加拿大出生”“根据我的理解,如果我选择随机选择348个NAs,并用1985替换,则不会影响我的分析。但是,如果您认为更好—状态由
df$brthcon
0=“born in Canada”
1=“born of Canada”
给出,只是为了澄清一下,您试图根据另一个变量将NAs替换为值
1985
100
?变量名是什么?你好,Aziz,我不会基于另一个变量进行替换。我试图在变量中进行替换,比如将NAs重新编码为1985或100。这有意义吗?您想如何决定在1985年之前更换哪种348 NAs?随机选择?第一个348。。。?我的理解是,您想用
1985
替换外国出生的NAs,用
100
替换加拿大出生的NAs?如果这是正确的,那么哪个变量存储外国/加拿大出生的状态?谢谢Aziz!是的,100代表“加拿大出生”。从我的理解来看,如果我选择随机选择348个NAs,用1985代替,这不会影响我的分析。但是,如果您认为更好的话,请使用
df$brthcon
0=“出生在加拿大”
1=“出生在加拿大境外”
非常感谢Joshua!这正是我想要的!!没问题。很高兴我能帮忙。你应该接受对原始帖子的编辑,这样其他人就不必阅读整个帖子。非常感谢Joshua!这正是我想要的!!没问题。很高兴我能帮忙。您应该接受对原始帖子的编辑,这样其他人就不必阅读整个帖子。