我对R比较陌生,所以如果这是基础的话,很抱歉。我有一个循环,里面有一个条件,比较两个列表,并返回一个TRUE/FALSE值的向量。我真正需要检查的是这个向量是否只包括TRUE值(意味着两个列表是相同的)
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]]
}
}
以下是一些数据:
> 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"
以下是条件结果示例:
> 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
是否有一个简单的函数可以检查 predicate 列表是否计算为TRUE(所有值都为TRUE)?
3条答案
按热度按时间bwitn5fc1#
也许可以试试
all
函数:正如它的名字所说,它检查是否所有的值都是TRUE。
ffx8fchx2#
也许这是不言而喻的,但我经常想检查正面的场景,即如果一个向量只包含FALSE值,在这种情况下,检查
any
值是否为真,如果没有(这给你FALSE),否定它:smdncfj33#
这些答案都是向量,而帖子的标题是“列表”。要检查逻辑值的 * 列表 * 是否计算为真,在检查之前只需
unlist()
。