R:用两个不同的值替换缺失值(NAs)
我可能把事情搞得太复杂了——我很想知道是否有更简单的方法来解决这个问题。我有一个数据框(df),有5654个观察值——1332个是外国出生的,4322个是加拿大出生的 变量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$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!这正是我想要的!!没问题。很高兴我能帮忙。您应该接受对原始帖子的编辑,这样其他人就不必阅读整个帖子。