全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2278 7
2015-01-20

现有一list对象dm, 内容如下,

[[1]]

[1] "V1" "V2""V3" "V4" "V5" "V6" "V7""V8"

[[2]]

[1] "V1" "V3"

[[3]]

[1] "V3" "V5""V6"

[[4]]

[1] "V1" "V2""V4" "V7" "V8" "V9"

[[5]]

[1] "V3" "V7"

[[6]]

[1] "V8"  "V9"

>typeof(dm)

[1] “list”

>typeof(dm[1])

[1] “list”

>typeof(dm[[1]])

[1] “character”

>typeof(dm[[1]][1])

[1] “character”

欲实现如下功能:1、选出出现次数最多的元素,本处为V1(出现3次);2、删除V1所在的集合,本处删除[[1]],[[2]],[[4]],此时dm剩下[[3]],[[5]],[[6]]3、重复以上步骤,即在[[3]],[[5]],[[6]]中再次找到出现次数最多V3,然后删除[[3]],[5]],如果最后剩余的各元素出现次数相同,则取第一个元素(本处最后取到V8),直至dmNULL

事实上,length(dm)20多万,有无高效的实现方法?用循环基本慢的出不了结果了。

多谢各位指教了。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-1-20 11:55:31
复制代码


循环
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-20 12:04:20
复制代码


循环不了多少次吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-20 14:20:23
yywan0913 发表于 2015-1-20 11:55
循环
多谢兄台指教。但是我在执行unlist(dm)时,碰到了“ cannot allocate vector of size 598.6Mb"。。有无良策?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-20 15:11:15
yukuang 发表于 2015-1-20 14:20
多谢兄台指教。但是我在执行unlist(dm)时,碰到了“ cannot allocate vector of size 598.6Mb"。。有无良 ...
那就是电脑内存不够了。。。好像没有什么好的办法。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-20 15:40:02
曲散人终 发表于 2015-1-20 15:11
那就是电脑内存不够了。。。好像没有什么好的办法。。。
兄台,可用ff或其它方式实现否?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群