如何在R中检查向量中的所有值是否都是整数?
要检查R中向量中的所有值是否均为整数,我们可以使用下限函数对向量进行四舍五入,然后从中减去向量值并检查输出是否为零。如果输出为零,则表示该值为整数,否则为非整数。floor函数返回小于或等于实际值的最大整数。例如,如果我们有一个向量x,那么它可以作为x-floor(x)==0。
例1
> x1<-sample(0:10,200,replace=TRUE) > x1输出结果
[1] 4 0 2 8 6 1 3 7 3 4 0 7 2 10 9 7 9 8 4 5 5 7 8 9 6 [26] 1 1 10 2 6 3 10 8 2 1 1 2 5 4 0 1 0 10 7 0 1 3 5 7 5 [51] 4 10 0 0 8 9 7 2 7 2 0 0 0 2 4 2 6 9 9 9 1 0 4 10 7 [76] 7 0 10 8 9 2 3 0 1 3 6 1 2 10 0 2 7 1 10 5 8 1 7 9 9 [101] 2 9 5 3 0 4 7 10 4 3 9 10 5 4 0 2 4 7 5 7 10 3 9 5 1 [126] 6 4 8 0 6 7 1 2 10 2 7 1 1 9 6 3 2 5 9 6 3 5 4 1 10 [151] 0 9 1 0 6 3 4 2 3 2 3 3 1 3 7 5 4 0 6 10 4 3 9 6 10 [176] 2 8 7 10 2 9 2 8 5 2 5 2 3 3 7 8 3 3 5 3 2 10 3 6 2
示例
> x1-floor(x1)==0输出结果
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [31] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [46] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [76] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [91] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [106] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [121] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [136] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [151] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [166] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [181] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [196] TRUE TRUE TRUE TRUE TRUE
例2
> x2<-sample(c(rnorm(10),1,5),100,replace=TRUE) > x2输出结果
[1] 1.00000000 -0.06451323 -1.30754384 -1.40935749 1.00000000 -1.30754384 [7] 1.00000000 1.03956333 -0.29699121 5.00000000 -1.25592848 -1.40935749 [13] -1.40935749 -1.40935749 -1.30754384 0.28637866 -1.40935749 -1.25592848 [19] -0.29699121 -0.95734141 -1.25592848 0.28637866 -0.95734141 -0.29699121 [25] -1.25592848 -0.61126941 -1.30754384 -0.95734141 -0.29699121 -0.61126941 [31] -0.08366718 -0.95734141 -0.06451323 -1.25592848 1.00000000 -0.06451323 [37] -0.08366718 5.00000000 5.00000000 -1.25592848 0.28637866 -0.95734141 [43] -0.95734141 -1.25592848 -0.95734141 1.00000000 -0.61126941 1.03956333 [49] -1.25592848 -0.29699121 1.03956333 -1.40935749 -0.29699121 5.00000000 [55] -1.40935749 0.28637866 -1.25592848 5.00000000 -0.95734141 -1.40935749 [61] 5.00000000 -1.30754384 -0.61126941 -0.08366718 5.00000000 -0.06451323 [67] 5.00000000 -0.95734141 -1.40935749 -0.95734141 5.00000000 -0.08366718 [73] -1.30754384 -0.06451323 1.03956333 1.03956333 -1.30754384 -0.61126941 [79] -1.40935749 -0.08366718 -0.61126941 -0.61126941 1.00000000 -0.29699121 [85] -1.40935749 -0.29699121 -1.30754384 -0.61126941 5.00000000 5.00000000 [91] -0.06451323 -0.29699121 1.00000000 5.00000000 -0.06451323 -0.08366718 [97] -0.95734141 5.00000000 -0.29699121 1.00000000
示例
> x2-floor(x2)==0输出结果
[1] TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE [37] FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE [49] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE [61] TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE [85] FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE [97] FALSE TRUE FALSE TRUE
例子3
> x3<-sample(c(rexp(10,1.25),0:1),100,replace=TRUE) > x3输出结果
[1] 0.05460675 4.38033999 0.05460675 0.37369945 1.96152318 1.25238146 [7] 1.05630048 1.01599745 4.38033999 1.25238146 1.00000000 0.65649865 [13] 4.38033999 4.38033999 1.25238146 4.38033999 1.25238146 1.00000000 [19] 1.25238146 1.75622583 1.01599745 4.38033999 0.65649865 1.05630048 [25] 1.21278164 1.01599745 1.05630048 1.75622583 1.00000000 1.75622583 [31] 1.75622583 1.96152318 0.00000000 1.96152318 1.21278164 1.01599745 [37] 0.65649865 1.25238146 0.37369945 1.21278164 1.00000000 1.21278164 [43] 0.05460675 1.75622583 0.37369945 1.75622583 0.65649865 0.05460675 [49] 1.75622583 0.37369945 1.75622583 0.00000000 1.05630048 1.96152318 [55] 1.21278164 1.05630048 1.05630048 1.05630048 1.96152318 1.05630048 [61] 0.05460675 1.05630048 0.00000000 0.65649865 0.00000000 1.96152318 [67] 4.38033999 1.05630048 1.96152318 1.25238146 4.38033999 4.38033999 [73] 1.05630048 0.05460675 4.38033999 1.21278164 1.25238146 1.75622583 [79] 1.00000000 1.05630048 1.21278164 1.25238146 1.05630048 1.96152318 [85] 0.05460675 4.38033999 1.05630048 0.65649865 0.05460675 1.05630048 [91] 1.21278164 0.00000000 1.05630048 0.00000000 4.38033999 0.65649865 [97] 0.05460675 0.65649865 1.25238146 1.00000000
示例
> x3-floor(x3)==0输出结果
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE [13] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE [25] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE [37] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [49] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [61] FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [73] FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE [85] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE [97] FALSE FALSE FALSE TRUE
例子4
> x4<-sample(c(runif(10,1,5),1:10),100,replace=TRUE) > x4输出结果
[1] 3.225631 8.000000 8.000000 2.291716 4.000000 2.666931 3.523014 [8] 2.861269 3.248689 1.000000 1.000000 3.523014 5.000000 2.784298 [15] 2.861269 5.000000 2.861269 3.225631 2.303123 6.000000 3.310928 [22] 2.291716 1.000000 2.000000 5.000000 3.225631 2.666931 2.000000 [29] 2.303123 2.303123 2.303123 3.523014 4.000000 3.000000 2.291716 [36] 1.690408 3.310928 3.248689 10.000000 2.784298 1.000000 2.784298 [43] 3.310928 6.000000 2.291716 7.000000 3.225631 2.303123 2.784298 [50] 2.291716 1.000000 4.000000 2.861269 2.861269 8.000000 4.000000 [57] 1.000000 2.784298 3.523014 2.303123 2.303123 6.000000 2.861269 [64] 10.000000 10.000000 2.784298 3.225631 9.000000 3.225631 2.666931 [71] 3.000000 2.666931 3.310928 3.000000 5.000000 3.000000 2.666931 [78] 2.784298 3.225631 5.000000 8.000000 3.000000 4.000000 3.248689 [85] 9.000000 6.000000 2.303123 9.000000 3.000000 3.248689 2.303123 [92] 3.000000 1.690408 6.000000 2.303123 7.000000 2.861269 3.310928 [99] 3.000000 4.000000
示例
> x4-floor(x4)==0输出结果
[1] FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE [13] TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE TRUE [25] TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE [37] FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE FALSE [49] FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE [61] FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE [73] FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE [85] TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE [97] FALSE FALSE TRUE TRUE
范例5
> x5<-sample(c(round(runif(10,2,5),2),6:10),100,replace=TRUE) > x5输出结果
[1] 3.48 2.29 3.61 10.00 3.28 3.48 9.00 3.28 9.00 6.00 2.49 2.30 [13] 9.00 2.29 3.48 3.94 2.49 3.94 3.83 7.00 3.94 7.00 3.48 4.26 [25] 3.28 3.94 3.83 3.83 6.00 3.94 3.94 2.30 6.00 7.00 3.28 10.00 [37] 3.48 2.30 4.26 3.48 2.49 2.30 2.30 7.00 3.28 4.26 2.29 3.48 [49] 4.94 3.48 3.83 9.00 2.30 6.00 8.00 3.61 3.83 9.00 3.28 3.94 [61] 3.28 2.29 6.00 8.00 2.30 8.00 3.48 4.26 8.00 2.49 9.00 10.00 [73] 4.26 3.94 7.00 4.94 3.61 2.30 3.48 3.48 8.00 8.00 10.00 4.26 [85] 3.28 4.94 10.00 4.94 3.61 3.61 2.29 9.00 2.29 4.26 3.94 3.28 [97] 3.94 3.61 4.94 4.94
示例
> x5-floor(x5)==0输出结果
[1] FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE [13] TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE [25] FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE [37] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE [49] FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE [61] FALSE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE [73] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE [85] FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE [97] FALSE FALSE FALSE FALSE