以下是我的问题:*

当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)))

推荐答案

澄清后更新代码:

ifelse人会做到这一点:

df %>%
  mutate(across(3:4, ~ifelse((Year >= 1997 & Year <= 2010)
                             & is.na(.), 0, .)))
  gid  Year TotalConflicts IncidenceConflicts
   <dbl> <dbl>          <dbl>              <dbl>
 1 79600  1981             NA                 NA
 2 79600  1982             NA                 NA
 3 79600  1983             NA                 NA
 4 79600  1984             NA                 NA
 5 79600  1985             NA                 NA
 6 79600  1986             NA                 NA
 7 79600  1987             NA                 NA
 8 79600  1988             NA                 NA
 9 79600  1989             NA                 NA
10 79600  1990             NA                 NA
11 79600  1991             NA                 NA
12 79600  1992             NA                 NA
13 79600  1993             NA                 NA
14 79600  1994             NA                 NA
15 79600  1995             NA                 NA
16 79600  1996             NA                 NA
17 79600  1997              0                  0
18 79600  1998              0                  0
19 79600  1999              0                  0
20 79600  2000              0                  0
21 79600  2001              0                  0
22 79600  2002              0                  0
23 79600  2003              0                  0
24 79600  2004              0                  0
25 79600  2005              0                  0
26 79600  2006              0                  0
27 79600  2007              0                  0
28 79600  2008              0                  0
29 79600  2009              0                  0
30 79600  2010              0                  0
31 79601  1981             NA                 NA
32 79601  1982             NA                 NA
33 79601  1983             NA                 NA
34 79601  1984             NA                 NA
35 79601  1985             NA                 NA
36 79601  1986             NA                 NA
37 79601  1987             NA                 NA
38 79601  1988             NA                 NA
39 79601  1989             NA                 NA
40 79601  1990             NA                 NA
41 79601  1991             NA                 NA
42 79601  1992             NA                 NA
43 79601  1993             NA                 NA
44 79601  1994             NA                 NA
45 79601  1995             NA                 NA
46 79601  1996             NA                 NA
47 79601  1997              0                  0
48 79601  1998              0                  0
49 79601  1999              2                  1
50 79601  2000              0                  0
51 79601  2001              0                  0
52 79601  2002              0                  0
53 79601  2003              0                  0
54 79601  2004              0                  0
55 79601  2005              0                  0
56 79601  2006              0                  0
57 79601  2007              0                  0
58 79601  2008              0                  0
59 79601  2009              0                  0
60 79601  2010              0                  0
> 





    ggh4x.axis.nesttext.y = element_text(margin = margin(r = 6, l = 6)),



R相关问答推荐

从具有随机模式的字符串中提取值

提取R中值和列名的所有可能组合

根据选中三个复选框中的一个或两个来调整绘图

将非重复序列高效转换为长格式

在df中保留原始变量和新变量

将文件保存到新文件夹时,切换r设置以不必创建目录

在嵌套列表中查找元素路径的最佳方法

根据列表中项目的名称合并数据框和列表

R中Gamma回归模型均方误差的两种计算方法不一致

使用不同的定性属性定制主成分分析中点的 colored颜色 和形状

防止在更新SHINY中的Reactive Value的部分内容时触发依赖事件

R中时间间隔的大向量与参考时间间隔的相交

Conditional documentr::R中数据帧的summarize()

如何在条形图中的x和填充变量中包含多个响应变量?

如何调整一个facet_work()面板内的框图和移动标签之间的水平宽度?

长/纬点继续在堪萨斯-SF结束,整齐的人口普查

识别部分重复行,其中一行为NA,其重复行为非NA

将日期列从字符转换为日期得到的结果是NAS

为什么在POSIXct-times的向量上循环会改变R中的类型?

通过不完全重叠的多个柱连接