R 检查 TRUE/FALSE 值列表是否评估为 TRUE

Nir*_*rke 1 r predicate list vector

我对 R 比较陌生,如果这是基础知识,我很抱歉。我有这个循环,里面有一个条件,可以在 2 个列表之间进行比较,并返回一个 TRUE/FALSE 值向量。我真正需要检查的是这个向量是否只包含 TRUE 值(意味着 2 个列表是相同的)

for ( i in 1:(length(sessions_items_list)-1)){
  if (sessions_items_list[[i]]==sessions_items_list[[i+1]]){
    identical_sessions_df [i,1] <- names(sessions_items_list[i])
    identical_sessions_df [i,2] <- names(sessions_items_list[i+1])
    #identical_sessions_df [i,3] <- sessions_items_list[[i]]
    #identical_sessions_df [i,4] <- sessions_items_list[[i+1]]
  }
}
Run Code Online (Sandbox Code Playgroud)

这是一些数据:

> sessions_items_list[[2]]
 [1] "111502665618" "111505397996" "121238758674" "121480200508" "131159477858" "161469302097" "161474935929" "171526802604" "231197187139" "231381216285" "251502101205" "261650031415"
[13] "261652085962" "261652452940" "271538491767" "281398254987" "291227243345" "311065441334" "321561638226" "321566237993" "331042848072" "331251405185" "331366646532" "361096154736"
[25] "381043841996"
> sessions_items_list[[3]]
 [1] "111502665618" "111505397996" "121238758674" "131159477858" "161469302097" "161474935929" "171526802604" "231197187139" "231381216285" "251502101205" "261647474153" "261650031415"
[13] "261652085962" "261652452940" "271538491767" "281398254987" "291227243345" "311065441334" "321561638226" "321566237993" "331042848072" "331251405185" "331366646532" "361096154736"
[25] "381043841996"
Run Code Online (Sandbox Code Playgroud)

这是条件结果示例:

> sessions_items_list[[2]]==sessions_items_list[[3]]
 [1]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的函数来检查这个谓词列表是否为真(所有值都是真)?

Pet*_*mis 10

也许试试这个all功能:

> x <- c(rep(TRUE, 5), FALSE)
> y <- c(rep(TRUE, 6))
> all(x)
[1] FALSE
> all(y)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

顾名思义,它会检查所有值是否都为 TRUE。