我的数据示例如下(尽管我有数百行):每个ID都是唯一的,并且可能有多个个体与一个ID相关联(例如,个体A和D)。
ID individual
1 A
2 B
3 A
4 C
5 D
6 D
7 D
我想随机选择一个ID 1000次,并有机会对同一ID进行重新采样,并存储在此采样方案中累积了多少个唯一个体。
然后,我想生成一个图,显示需要选择多少ID来累积所有独特的个体,以便曲线达到渐近线,其中ID在x轴上,个体在y轴上。
**编辑:**我对上面想要的情节描述不清楚,编辑如下:
我想生成一个图,显示ID必须被选择(替换)的次数,以累积所有唯一个体..而不是与唯一个体相关的唯一ID的数量。一旦所有唯一个体累积,该曲线应达到渐近线x次ID被选择。
例如,如果有500个ID与200个个体相关联,我想对500个ID的池进行1000次采样(或多次采样),同时在每次采样后将ID放回池中,以查看我们必须对池进行多少次采样才能使所有200个个体累积。
2条答案
按热度按时间nx7onnlm1#
下面是一个基于R的尝试,使用一个自定义函数来计算累积的唯一值:
较大的示例数据:
采样、计数累积值并绘图:
如果你想添加一条最适合你选择的线和一些更好的轴,你也可以把图整理一下:
axzmvihb2#
我想随机选择一个ID 1000次,并有机会对同一ID进行重新采样,并存储在此采样方案中累积了多少个唯一个体。
您可以使用
slice_sample
fromdplyr
对 Dataframe 中的行进行采样。例如:然后,我想生成一个图,显示需要选择多少ID来累积所有独特的个体,以便曲线达到渐近线,其中ID在x轴上,个体在y轴上。
你可以将其封装到一个函数中,为不同数量的id和individuals生成值(并为此绘制),然后使用
ggplot
或其他绘图工具绘制不同的值。然而,这让我觉得这是一个组合问题,可能更适合https://math.stackexchange.com/,因为这些值将完全取决于id和individuals的数量。编辑:在函数中: