我有一个表(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
我想将此表转换为1或0.如果单元格数> 5,我们给它1,如果单元格数是<5或= 5,我们给它一个0.这样之后转型,表t1将成为以下内容:
[,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
我应该使用哪些命令?
答案 0 :(得分:5)
您可以使用ifelse()
声明:
ifelse(t1 > 5, 1, 0)
由于t1 > 5
之类的语句会产生TRUE
和FALSE
的矩阵,并且由于R将TRUE
视为“1
”和{{ 1}}为“FALSE
”,对于此特定转换,您还可以执行以下操作:
0
答案 1 :(得分:0)
我还没有计时,但ifelse
的替代方法就是使用条件语句。
foo <- bar < 5
哦,伙计,朱利叶斯去了10秒就打败了我。