总结R中的逻辑向量
Summing up a logical vector in R
patt<-c(`205` = FALSE, `210` = TRUE, `16` = TRUE, `2` = FALSE)
totalobs<-0
{for (element in patt)
if (element == TRUE){
print (element)
totalobs=totalobs+sum(element)
}
print (totalobs)
}
我有一个逻辑向量
see here,其中我要加上所有TRUE的值。使用上面的代码,我只能将这个向量中出现 TRUE 的次数加起来,而不是每个 TRUE 值上方的数字。我是 R 的新手,我该如何解决这个问题?
我们可以使用 patt
对 names(patt)
进行子集化,将结果转换为数值向量,最后使用 sum
获得所需的输出,如下所示
sum(as.numeric(names(patt)[patt]))
#[1] 226
如果您需要更频繁地进行此类计算,请编写一个小函数
Janne <- function(x) {
sum(as.numeric(names(x)[x]))
}
Janne(patt)
patt<-c(`205` = FALSE, `210` = TRUE, `16` = TRUE, `2` = FALSE)
totalobs<-0
{for (element in patt)
if (element == TRUE){
print (element)
totalobs=totalobs+sum(element)
}
print (totalobs)
}
我有一个逻辑向量 see here,其中我要加上所有TRUE的值。使用上面的代码,我只能将这个向量中出现 TRUE 的次数加起来,而不是每个 TRUE 值上方的数字。我是 R 的新手,我该如何解决这个问题?
我们可以使用 patt
对 names(patt)
进行子集化,将结果转换为数值向量,最后使用 sum
获得所需的输出,如下所示
sum(as.numeric(names(patt)[patt]))
#[1] 226
如果您需要更频繁地进行此类计算,请编写一个小函数
Janne <- function(x) {
sum(as.numeric(names(x)[x]))
}
Janne(patt)