我有一个 1 和 2 的数组,我需要将值 2 更改为 0,但我知道该怎么做。有人可以帮助我使用 R.Thanck 中的代码
最佳答案
您可以尝试%%
arr <- arr %% 2
或替换
replace(arr, arr == 2, 0),
或者只是-
2 - arr
或使用bitwAnd
的更快版本
arr <- bitwAnd(arr, 1)
基准
set.seed(1)
arr <- sample(1:2, 1e6, replace = TRUE)
microbenchmark(
arr %% 2,
replace(arr, arr == 2, 0),
2 - arr,
bitwAnd(arr, 1),
check = "equivalent"
)
给出
Unit: milliseconds
expr min lq mean median uq
arr%%2 10.874101 11.269351 12.689352 11.537851 13.611351
replace(arr, arr == 2, 0) 9.174002 9.542651 11.347834 10.070752 13.385150
2 - arr 1.477701 1.548151 3.076632 1.612951 1.981701
bitwAnd(arr, 1) 1.322300 1.368951 1.678158 1.413750 1.537602
max neval
24.764601 100
16.579201 100
61.927400 100
6.053701 100
关于r - 如何替换数组中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72042864/