R:用两个不同的值替换缺失值 (NA)
R: Substituting missing values (NAs) with two different values
我可能把事情复杂化了 - 很想知道是否有更简单的方法来解决这个问题。我有一个包含 5654 个观察值的数据框 (df) - 1332 个是外国出生的,4322 个是加拿大出生的。
变量df$YR_IMM
捕获:"In what year did you come to live in Canada?"
请参阅以下每个移民年份的观察分布 table(df$YR_IMM)
:
1920 1926 1928 1930 1939 1942 1944 1946 1947 1948 1949 1950 1951 1952 1953 1954
2 1 1 2 1 2 1 1 1 9 5 1 7 13 3 5
1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970
10 5 8 6 6 1 5 1 6 3 7 16 18 12 15 13
1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986
10 17 8 18 25 16 15 12 16 27 13 16 11 9 17 16
1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
24 21 31 36 26 30 26 24 22 30 29 26 47 52 53 28 9
当然,这些只是外国出生的个体(平均值 = 1985)- 然而,有 348 名外国出生的人失踪了。总共有 4670 个 NA,其中还包括加拿大出生的受试者。
如何以
的方式对这些 df$YR_IMM
NA 进行编码
348 (NA) --> 1985
4322(NA) --> 100
此外,状态由 df$Brthcoun
和 0 = "born in Canada"
和 1 = "born outside of Canada
给出。
希望这是有道理的 - 谢谢!
编辑:这就是解决方案 ->
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_IMM[is.na(df$YR_IMM) & df$Brthcoun == 0] <- 100
df$YR_IMM[is.na(df$YR_IMM) & df$Brthcoun == 1] <- 1985
希望对您有所帮助!
像这样的东西也应该有效:
df$YR_IMM <- ifelse(is.na(df$YR_IMM) & df$Brthcoun == 0, 100, 1985)
我可能把事情复杂化了 - 很想知道是否有更简单的方法来解决这个问题。我有一个包含 5654 个观察值的数据框 (df) - 1332 个是外国出生的,4322 个是加拿大出生的。
变量df$YR_IMM
捕获:"In what year did you come to live in Canada?"
请参阅以下每个移民年份的观察分布 table(df$YR_IMM)
:
1920 1926 1928 1930 1939 1942 1944 1946 1947 1948 1949 1950 1951 1952 1953 1954
2 1 1 2 1 2 1 1 1 9 5 1 7 13 3 5
1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970
10 5 8 6 6 1 5 1 6 3 7 16 18 12 15 13
1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986
10 17 8 18 25 16 15 12 16 27 13 16 11 9 17 16
1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
24 21 31 36 26 30 26 24 22 30 29 26 47 52 53 28 9
当然,这些只是外国出生的个体(平均值 = 1985)- 然而,有 348 名外国出生的人失踪了。总共有 4670 个 NA,其中还包括加拿大出生的受试者。
如何以
的方式对这些df$YR_IMM
NA 进行编码
348 (NA) --> 1985
4322(NA) --> 100
此外,状态由 df$Brthcoun
和 0 = "born in Canada"
和 1 = "born outside of Canada
给出。
希望这是有道理的 - 谢谢!
编辑:这就是解决方案 ->
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_IMM[is.na(df$YR_IMM) & df$Brthcoun == 0] <- 100
df$YR_IMM[is.na(df$YR_IMM) & df$Brthcoun == 1] <- 1985
希望对您有所帮助!
像这样的东西也应该有效:
df$YR_IMM <- ifelse(is.na(df$YR_IMM) & df$Brthcoun == 0, 100, 1985)