全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
21254 12
2015-11-09
如下data frame:

isAisBisCisDother
xyesnoyesnoNA
yyesyesyesyesNA
znonoyesnoNA

[/table]统计结果如下,就是增加1列ANS,且其中的数字为每行的yes 个数,
[table=448]
   
  isA  isB  isC  isD  other  ANS
   x  yes  no  yes  no  NA  

2


   y  yes  yes  yes  yes  NA  

4


   z  no  no  yes  no  NA  

1


请不要使用for循环依次判断,这个都会...
我想问一下从R最突出的向量计算来讲这个能怎么解决?


二维码

扫码加我 拉你入群

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

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

全部回复
2015-11-9 22:28:38
这段代码可以解决你的问题:
复制代码
二维码

扫码加我 拉你入群

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

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

2015-11-9 22:41:56
rowSums(data=="Yes")
二维码

扫码加我 拉你入群

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

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

2015-11-9 23:22:54
顶楼上的;
楼上的楼上所谓的apply和for循环其实是一样的
二维码

扫码加我 拉你入群

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

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

2015-11-10 00:50:05
hzx21th 发表于 2015-11-9 23:22
顶楼上的;
楼上的楼上所谓的apply和for循环其实是一样的
也可以这么理解,不过apply的for循环是调用 的C里的循环,比R本身的for循环要好一些
二维码

扫码加我 拉你入群

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

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

2015-11-10 09:45:36
万人往LVR 发表于 2015-11-9 22:41
rowSums(data=="Yes")
这种方法比较快

我用rbenchmark包的工具测试,随机“yes”和“no”,4列,行数从10000依次增长到100000,系统耗时的变化如下:
benchmark.png
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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