楼主: 哈啊哈11
1399 3

[程序分享] 代码 runif(10) %>% sum(. < 0.8) 的结果竟然大于10 [推广有奖]

  • 0关注
  • 0粉丝

副教授

31%

还不是VIP/贵宾

-

威望
0
论坛币
82 个
通用积分
27.1430
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20918 点
帖子
363
精华
0
在线时间
391 小时
注册时间
2016-7-29
最后登录
2024-6-17

楼主
哈啊哈11 发表于 2020-4-28 10:45:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
目标是计算随机数向量中小于某个给定值的个数,但结果出乎意料,大神看看,哪儿写错了:
  1. > runif(10) %>% sum(. < 0.8)
  2. [1] 13.73867
复制代码


二维码

扫码加我 拉你入群

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

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


沙发
llb_321 在职认证  发表于 2020-4-28 11:24:33
runif(10) %>% sum(. < 0.8) 管道操作的结果是把随机数中<0.8数值加和。
如果要得到个数,改成
c<-runif(10)
sum(c<0.8)
虽然看上去差不多,但是结果却是对c<0.8的逻辑值加和,实现计数的目的。
你试试,体会一下二者的差别。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
万人往LVR 在职认证  发表于 2020-4-28 13:46:19
你的代码相当于
  1. runif(10) %>% sum(., . < 0.8)
复制代码
管道函数后面出现嵌套时候容易出现默认增加第一个参数
可改为
  1. runif(10) %>% {.<0.8} %>% sum
复制代码

已有 1 人评分论坛币 收起 理由
cheetahfly + 20 精彩帖子

总评分: 论坛币 + 20   查看全部评分

板凳
哈啊哈11 发表于 2020-4-28 17:36:49
万人往LVR 发表于 2020-4-28 13:46
你的代码相当于管道函数后面出现嵌套时候容易出现默认增加第一个参数
可改为
多谢指教

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-8 06:28