如何在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