R 对于给定的阈值,将表转换为0和1

R 对于给定的阈值,将表转换为0和1,r,transform,R,Transform,我有一个表(t1),如下所示: t1 <- array(1:20, dim=c(10,10)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 1 11 1 11 1 11 1 11 1 11 [2,] 2 12 2 12 2 12 2 12 2 12 [3,] 3 13 3 13

我有一个表(t1),如下所示:

t1 <- array(1:20, dim=c(10,10))

      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    1   11    1   11    1   11    1   11    1    11
 [2,]    2   12    2   12    2   12    2   12    2    12
 [3,]    3   13    3   13    3   13    3   13    3    13
 [4,]    4   14    4   14    4   14    4   14    4    14
 [5,]    5   15    5   15    5   15    5   15    5    15
 [6,]    6   16    6   16    6   16    6   16    6    16
 [7,]    7   17    7   17    7   17    7   17    7    17
 [8,]    8   18    8   18    8   18    8   18    8    18
 [9,]    9   19    9   19    9   19    9   19    9    19
[10,]   10   20   10   20   10   20   10   20   10    20

我应该使用哪些命令

您可以使用
ifelse()
语句:

ifelse(t1 > 5, 1, 0)
由于像
t1>5
这样的语句将产生
TRUE
FALSE
的矩阵,并且由于R将
TRUE
视为“
1
”和
FALSE
视为“
0
”,因此对于此特定转换,您还可以执行以下操作:

(t1 > 5)+0
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    0    1    0    1    0    1    0    1    0     1
 [2,]    0    1    0    1    0    1    0    1    0     1
 [3,]    0    1    0    1    0    1    0    1    0     1
 [4,]    0    1    0    1    0    1    0    1    0     1
 [5,]    0    1    0    1    0    1    0    1    0     1
 [6,]    1    1    1    1    1    1    1    1    1     1
 [7,]    1    1    1    1    1    1    1    1    1     1
 [8,]    1    1    1    1    1    1    1    1    1     1
 [9,]    1    1    1    1    1    1    1    1    1     1
[10,]    1    1    1    1    1    1    1    1    1     1

我没有对它计时,但是
ifelse
的另一种选择就是使用条件语句


foo更快的解决方案是使用显式转换:
fasterFun
(t1 > 5)+0
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    0    1    0    1    0    1    0    1    0     1
 [2,]    0    1    0    1    0    1    0    1    0     1
 [3,]    0    1    0    1    0    1    0    1    0     1
 [4,]    0    1    0    1    0    1    0    1    0     1
 [5,]    0    1    0    1    0    1    0    1    0     1
 [6,]    1    1    1    1    1    1    1    1    1     1
 [7,]    1    1    1    1    1    1    1    1    1     1
 [8,]    1    1    1    1    1    1    1    1    1     1
 [9,]    1    1    1    1    1    1    1    1    1     1
[10,]    1    1    1    1    1    1    1    1    1     1