首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >统计lapply中条件的出现次数

统计lapply中条件的出现次数
EN

Stack Overflow用户
提问于 2012-08-07 15:14:54
回答 3查看 3.2K关注 0票数 4

我正在运行一个模拟,我需要跟踪特定条件的函数调用中出现的次数。我试图通过向全局对象赋值来实现这一点。如果你运行这个函数,它是有效的,但是如果你像我这样尝试lapply这个函数,你会得到一个关于所有条件发生次数的计数,而不是每次输入到lapplylist中每个元素发生的次数的计数。

这里是一个虚拟的情况,其中出现的是一个数字的均衡性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FUN <- function(x){
    lapply(1:length(x), function(i) {
        y <- x[i]
        if (y %% 2 == 0){
            assign("count.occurrences", count.occurrences + 1, env=.GlobalEnv)   
        }
        print("do something")
    })
    list(guy="x", count=count.occurrences)
}

#works as expected
count.occurrences <- 0
FUN(1:10)


count.occurrences <- 0  
lapply(list(1:10, 1:3, 11:16, 9), FUN) 

#gives me...
#> count.occurrences
#[1] 9

#I want...
#> count.occurrences
#[1] 5  1  3  0

这是在模拟中,所以速度是一个问题。我希望这件事越快越好,这样我就不会被全局赋值的想法困扰。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-07 16:36:46

与其分配给全局环境,为什么不直接分配给FUN的内部环境呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FUN <- function(x){
    count.occurances <- 0
    lapply(1:length(x), function(i) {
        y <- x[i]
        if (y %% 2 == 0){
            count.occurances <<- count.occurances + 1
        }
        print("do something")
    })
    list(guy="x", count=count.occurances)
}

Z <- lapply(list(1:10, 1:3, 11:16, 9), FUN) 

然后你就可以把计数拉出来了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> sapply(Z, `[[`, "count")
[1] 5 1 3 0
票数 8
EN

Stack Overflow用户

发布于 2012-08-07 16:24:25

我还没有对此做过任何基准测试,但是您是否尝试过仅使用for循环?我知道循环在R中通常不被鼓励,但它们也不总是很慢。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FUN <- function(x) {
  count.occurrences = 0
  for (i in 1:length(x)) {
    y = x[i]
    if (y %% 2 == 0) {
      count.occurrences = count.occurrences + 1
    }
    print("do something")
  }
  list(guy="x", count=count.occurrences)
}

lapply(list(1:10, 1:3, 11:16, 9), FUN)
票数 2
EN

Stack Overflow用户

发布于 2012-08-07 16:23:35

我可以像这样得到它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
count.occurances <- 0  
Z <-lapply(list(1:10, 1:3, 11:16, 9), FUN) 
diff(c(0, sapply(1:length(Z), function(x) Z[[x]]$count)))

我对更好的想法(更快)持开放态度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11848984

复制
相关文章
统计大文件中字符串出现的次数
如果有一个大文件,里面全是ip字符串,现在需要统计每个ip出现的次数,并且ip长度都挺长的,怎么在不使用map的情况下怎么统计,或者怎么优化
opencode
2022/12/26
1.6K0
Excel函数与VBA多条件统计不重复出现的次数
=SUM(IF(MATCH($B$2:$B$41&$A$2:$A$41,$B$2:$B$41&$A$2:$A$41,0)=ROW($A$1:$A$40),1,0)*($B$2:$B$41=G1))
哆哆Excel
2022/10/25
2.2K0
Excel函数与VBA多条件统计不重复出现的次数
JavaScript | 获取数组中的单词并统计出现次数
HTML5学堂(码匠):如何通过JavaScrip实现数组元素的查找?在一个数组当中,找到所有的单词,并统计每个单词出现的次数。 功能需求 在一个自定义数组当中,包含多个单词,请使用JavaSci
HTML5学堂
2018/03/13
5.1K0
JavaScript | 获取数组中的单词并统计出现次数
统计字符串中字符出现的次数-Python
方法一: list1 = ['a', 'a', 'b', 'c', 'c', 'c', 'c'] dict_cnt = {} for value in list1: dict_cnt[value] = dict_cnt.get(value, 0) + 1 print(dict_cnt) 方法二: list1 = ['a', 'a', 'b', 'c', 'c', 'c', 'c'] dict_cnt = {} for item in list1: if item in dict_cnt:
流柯
2020/08/03
2.6K0
统计字符串中字符出现次数(延伸)
说明:第一个参数表示被统计的字符串,第二个参数是需要统计的字符。 思想,定义一个对象保存比较的结果。
从入门到进错门
2018/08/21
1.2K0
Python中如何统计文本词汇出现的次数?
有时在遇到一个文本需要统计文本内词汇的次数的时候,可以用一个简单的python程序来实现。
小小科
2020/04/29
4K0
统计文件中出现的单词次数
这里以kevin.txt文件内容(单词由一个或多个空格字符分隔)为例进行简单说明 [root@centos6-test06 ~]# cat /root/kevin.txt the world kevin is the is world grace the kevin art the kevin the is kevin 统计kevin.txt文件中出现的单词次数 第一种方法:结合grep和awk编写shell脚本 脚本内容如下: [root@centos6-test06 ~]# cat count.sh
洗尽了浮华
2018/04/11
3.8K0
统计字符串中每个元素出现的次数
题目描述 给定一字符串,例如AAAABCCDDDDDEFFFFF,统计字符串每个元素出现的次数。
呆呆
2021/10/06
2.2K0
c++统计字符串中某个字符出现的次数_统计字符串出现的次数
先来讲一下原理,其实就是循环数据库中的所有表,然后找模糊查找,找到了就记录表名、表中的字段、统计出现的次数。
用户7886150
2021/02/05
3.5K0
Excel - 统计每周连续出现次数
今天遇到一个问题,需要统计每个问题小区在当周的连续出现次数,连续次数大于等于4次,则定义为质差小区。 刚接手时感觉比较简单,实际做发现不是那么回事,统计出来的是每周出现的次数,而不是每周连续出现的次数。
披头
2019/12/26
3.1K0
利用Map统计字符串中字符出现的次数
效果如下: package cn.edu.nuc.map; import java.util.HashMap; import java.util.Map; public class Test
曼路
2018/10/18
1.5K0
利用Map统计字符串中字符出现的次数
python字典在统计元素出现次数中的简单应用
这里就要用到字典类型了,在字典中构成“元素:出现次数”的健值对,非常适合“统计元素次数”这样的问题。
大黄蜂ZF
2022/05/05
5.8K0
解决统计出现次数问题的方法类
本人在测试抽奖活动的过程中,遇到一个需求,需要统计每一次抽奖结果,然后跟预期值比较。一开始的思路是没遇到一次然后设立一个int 类型的参数,然后遇到了就++一次就行了,但是情况比较多,用 switch-case 来做比较麻烦,需要写很长的代码,联想到之前面试也遇到过类似的问题,所以特意写了一个方法来做这个事情。思路是利用 jsonobject 类的 containKey 方法来实现的。如果存在就 value 值加一,如果不存在就 put 到 jsonobject 里面。下面是代码,供各位参考。
FunTester
2019/08/27
1.4K0
hive 中 统计某字段json数组中每个value出现的次数
需要将json数组里的qd_title都提取出来转换成hive中的array数组。下面介绍两种方法
Meet相识
2018/09/12
10.7K1
统计字符串中字符出现的次数(||和&&的区别)
var str = "ProsperLee"; // || 返回第一个为真的表达式的值,若全为假则返回最后一个表达式的值 // && 返回第一个为假的表达式的值,若全为真则返回最后一个表达式的值 String.prototype.charCount = function(){ var json = {}; for (var i = 0, l = this.length; i < l; i++) { json[this[i]] = json[this[i]] + 1 || 1
ProsperLee
2018/12/12
1.1K0
Hadoop入门---(wordcount)统计单词出现的次数
在hadoop安装目录下创建wcinput目录,如我的安装目录是:/opt/module/hadoop-2.7.7
手撕代码八百里
2020/07/28
1.4K0
js算法之统计字符出现次数
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title> </head> <body> <script> var a=prompt("").spli
贵哥的编程之路
2021/05/10
3K0
js算法之统计字符出现次数
Python|统计文本词汇出现次数
有时在遇到一个文本需要统计文本内词汇的次数的时候,可以用一个简单的python程序来实现。
算法与编程之美
2020/02/27
2.9K0
代码实现——MapReduce统计单词出现次数
对以下txt文档进行单词出现次数统计(txt文档在/Users/lizhengi/test/input/目录下)
栗筝i
2022/12/01
9960
点击加载更多

相似问题

统计多个条件的出现次数

121

统计有条件的出现次数

114

统计特定日期条件内出现的次数

142

统计文件中出现的次数。条件模式匹配

06

统计SQL中的出现次数

231
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文