在我的数据框中,我想将某些列中的所有值替换为 NA。
Test2
ID Sex Location Obs1 Obs4 Obs5
1 291978 FEMALE 2 16.5 4836 0.563636364
2 292429 FEMALE 2 20.2 5428 0.584158416
3 292466 FEMALE 2 19.2 48 0.005208333
4 293656 FEMALE 2 15.8 2904 0.417721519
5 291993 FEMALE 2 18.1 6194 0.900552486
6 293263 FEMALE 2 17.9 616 0.078212291
7 290200 FEMALE 2 16.7 792 0.107784431
8 292511 FEMALE 2 18.3 4992 0.568306011
9 291510 FEMALE 2 18.6 350 0.037634409
10 293711 FEMALE 2 18.2 264 0.032967033
11 295234 FEMALE 2 16.5 216 0.036363636
12 293839 FEMALE 2 15.0 4114 0.806666667
13 291057 FEMALE 2 16.7 56 0.005988024
14 295094 FEMALE 2 16.5 3154 0.503030303
15 295562 FEMALE 2 14.7 966 0.142857143
16 292381 FEMALE 2 17.4 1980 0.258620690
17 289765 FEMALE 2 17.8 3492 0.544943820
18 293871 FEMALE 2 18.2 3760 0.516483516
19 291076 FEMALE 2 16.8 88 0.011904762
20 293851 FEMALE 2 16.1 2242 0.366459627
首先,我想指定哪些列的值应替换为 NA。这可以只有一列,也可以是多列。这就是为什么我更喜欢将它放入向量中。
> Obs <- c('Obs1')
然后,我尝试使用以下方法将“Obs1”列中的所有值替换为 NA:
> deselect <- Test2 %>% mutate(across(paste(Obs), gsub(".*",NA,paste(Obs))))
但是,它给了我这个错误:
Error: Problem with `mutate()` input `..1`.
x Problem with `across()` input `.fns`.
i Input `.fns` must be NULL, a function, a formula, or a list of functions/formulas.
i Input `..1` is `across(paste(Obs), gsub(".*", NA, paste(Obs)))`.
Run `rlang::last_error()` to see where the error occurred.
任何人都知道如何在交叉内、在变异内使用 gsub?还是我应该使用其他方法?
非常感谢!