【发布时间】:2018-06-21 09:12:02
【问题描述】:
我对 R 比较陌生,可能这个问题的解决方案相当简单。
让我们想象一下,我有两个鸟类(a 和 b)的巢数据集,如下所示:
df
year nestid sp egg chick
2013 a1 a 2 1
2013 a2 a NA 1
2013 a3 a NA 0
2013 a4 a NA 1
2013 a5 a NA 0
2013 b1 b 2 0
2013 b2 b NA 1
2013 b3 b NA 2
2013 b4 b NA 1
2014 a1 a NA 1
2014 a2 a NA 1
2014 a3 a 1 1
2014 a4 a NA 1
2014 a5 a NA 1
2014 b1 b NA 1
2014 b2 b NA 2
2014 b3 b NA 2
2014 b4 b NA 1
我想从小鸡的数量推断那些“NA”的鸡蛋数量。如果有“2”只小鸡,因为它们最多产下 2 个鸡蛋,则将“NA”替换为 2 是有意义的。
但是我想在 2013 年用“2”替换随机选择的 80% 的带有 1 只小鸡的巢的 NA,并用“1”替换剩余的 20% 的巢和 1 只小鸡的 2013 年物种“a”。但这2014 年物种“a”的离合器尺寸为 2 和 1 的比率分别为 40% 和 60%。
我试过这样,但无法弄清楚如何正确编码。
df%>% mutate(egg=ifelse(egg==0 & chick==2, 2, egg))
df%>%
mutate(egg=ifelse(egg==0 & chick==1 & year==2013, sample_frac(.8)==2, egg))
任何帮助将不胜感激!
非常感谢
【问题讨论】:
-
dput你的数据并粘贴dput(df),这样别人就可以使用你的数据了