[英]how can i check if all the elements of list are integers in r?
假设我有这个列表:
List_example <- list('short'= 10,'medium'= 20,'long'=200)
如何检查是否可以检查一个 go 中的 short、medium 和 long 是否是整数?
试试下面的代码
> all(sapply(List_example, `%%`, 1) == 0)
[1] TRUE
用sapply
:
List_example <- list('short'= 10,'medium'= 20,'long'=200)
all(sapply(List_example, is.numeric))
#[1] TRUE
要检查整数,专门使用is.integer
。
如果 object 有一个 R integer 类型,那么很明显它是一个整数,或者如果它有一个 double 类型,那么我们可以检查它是否等于自己四舍五入。
is_int <- function(x) is.integer(x) || (is.numeric(x) && identical(round(x), x))
all(sapply(List_example, is_int))
## [1] TRUE
L <- list(3, 5L, "xyz")
all(sapply(L, is_int))
## [1] FALSE
如果您的意思是您想知道它们是否都具有 R integer 类型,那么我们有以下内容,因为示例中的数字都是双精度数。
all(sapply(List_example, is.integer))
## [1] FALSE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.