根据 R 中的概率表/数据框分配随机变量
我有一个如下所示的概率数据框,名为 ptable
:
unique_id color share
1 red 0.3
1 blue 0.7
2 red 0.4
3 blue 0.5
我想根据中的 share
变量随机分配一个 color
变量可能是另一个数据框 join_table
的表,如下所示。
unique_id count
1 3
2 4
我理解sample(),但我不知道如何通过共享unique_id
分配概率。我最近的尝试是
join_table %>%
group_by(unqiue_id) %>%
mutate(color= sample(ptable$race[unique_id==ptable$unique_id],
size=n(),
prob=ptable$share[nique_id==ptable$unique_id],
replace=TRUE))
任何帮助都会很棒。
I have a probability data frame like below, called ptable
:
unique_id color share
1 red 0.3
1 blue 0.7
2 red 0.4
3 blue 0.5
I'd like to randomly assign a color
variable based on the share
variable in the probably table to another data frame join_table
that looks like below.
unique_id count
1 3
2 4
I understand sample() but am stuck on how to assign the probability by the shared unique_id
. My latest attempt was
join_table %>%
group_by(unqiue_id) %>%
mutate(color= sample(ptable$race[unique_id==ptable$unique_id],
size=n(),
prob=ptable$share[nique_id==ptable$unique_id],
replace=TRUE))
Any help would be great.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
代码中有两个拼写错误:
group_by(unqiue_id)
应该是group_by(unique_id)
并且
prob=ptable$share[nique_id==ptable$unique_id]
应为prob=ptable$share[unique_id==ptable$unique_id]
。这应该有效:
由 reprex 包 (v2.0.1)于 2022 年 3 月 1 日创建< /sup>
There were two typos in the code:
group_by(unqiue_id)
should begroup_by(unique_id)
and
prob=ptable$share[nique_id==ptable$unique_id]
should beprob=ptable$share[unique_id==ptable$unique_id]
.This should work:
Created on 2022-03-01 by the reprex package (v2.0.1)