以下是我的问题:*
当Year>;=1997&;<;=2010时,我想将NA值更改为0.
以下是数据集的一个子集:
structure(list(gid = c(79600, 79600, 79600, 79600, 79600, 79600,
79600, 79600, 79600, 79600, 79600, 79600, 79600, 79600, 79600,
79600, 79600, 79600, 79600, 79600, 79600, 79600, 79600, 79600,
79600, 79600, 79600, 79600, 79600, 79600, 79601, 79601, 79601,
79601, 79601, 79601, 79601, 79601, 79601, 79601, 79601, 79601,
79601, 79601, 79601, 79601, 79601, 79601, 79601, 79601, 79601,
79601, 79601, 79601, 79601, 79601, 79601, 79601, 79601, 79601
), Year = c(1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989,
1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 1981,
1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
2004, 2005, 2006, 2007, 2008, 2009, 2010), TotalConflicts = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 2,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), IncidenceConflicts = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA,
-60L), class = c("tbl_df", "tbl", "data.frame"))
请注意,列InsidenceConflict是一个二进制列.有时我得到1、0或NA.
我试过了,但不起作用:
test<- test %>%
mutate(across(3:4, ~replace(.x, .x == "NA" & Year >= 1997, 0)))