r - 在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)
}
我有一个逻辑向量 ,请参见此处,我想在其中添加 TRUE 的所有值。使用上面的代码,我只能将 TRUE 出现在这个向量中的次数相加,而不是每个 TRUE 值之上的数字。我对 R 很陌生,我将如何解决这个问题?
解决方案
我们可以使用patt
to subset names(patt)
,将结果转换为数字向量,最后使用sum
来获得所需的输出,如下所示
sum(as.numeric(names(patt)[patt]))
#[1] 226
如果您需要更频繁地进行此类计算,请编写一个小函数
Janne <- function(x) {
sum(as.numeric(names(x)[x]))
}
Janne(patt)
推荐阅读
- php - 重定向后如何更改我的代码以使用验证码
- sql - 根据原始数据构建时间窗口计数器 - Big Query
- apache - 将 yesod 应用程序作为(快速)CGI 服务
- javascript - 覆盖单个实例的数组函数
- javascript - cryptojs.decrypt 返回空结果
- twilio - Twilio 轨道禁用未按预期工作
- java - 即使在设置 server.servlet.contextPath 之后,弹簧执行器也会出现 404 Not found 错误
- regex - 需要从 perl 中最后捕获的字符串返回捕获组的值
- javascript - 为什么我的画布游戏代码从 Javascript 中的构造函数的模块返回“未定义”?
- python - 如何从python字典中删除一些值