【发布时间】:2022-01-23 11:23:39
【问题描述】:
我正在使用 R 编程语言。假设我有以下数据:
> head(my_data)
survey_1_var_1 survey_1_var_2 survey_1_var_3 survey_2_var_4 survey_2_var_5 survey_2_var_6 survey_3_var_7 survey_3_var_8 survey_3_var_9 g
1 15.22394 0.000000 16.657620 0.000000 6.646745 9.146625 0.00000 0.00000 0.0000000 C
2 0.00000 21.144729 0.000000 0.000000 13.974305 0.000000 10.83326 0.00000 11.0154182 A
3 28.21113 0.000000 -3.157330 7.730749 -1.919841 19.842216 18.18518 13.45900 10.6051849 C
4 0.00000 0.000000 -2.125495 0.000000 0.000000 16.317981 11.52731 15.25231 0.0000000 C
5 0.00000 0.000000 -1.331926 16.843596 0.000000 -13.215788 10.61635 0.00000 -0.8529851 B
6 -11.25795 7.150576 0.000000 0.000000 0.000000 8.292532 11.43462 0.00000 0.0000000 A
我的问题有没有办法用 1 替换所有非零数据?
我可以做到这一点:
my_data$survey_1_var_1 = ifelse(survey_1_var_1 >0,1,0)
my_data$survey_1_var_2 = ifelse(survey_1_var_2 >0,1,0)
etc..
但是有没有办法一次性做到这一切?
谢谢!
【问题讨论】:
-
my_data %>% mutate(across(everything(), ~ifelse(.x >0, 1, 0)))怎么样?您需要先加载 dplyr。这将对数据的所有列执行 ifelse 函数。
标签: r data-manipulation