根据R数据帧中的值进行过滤

时间:2017-08-23 21:09:17

标签: r filter

这是我的数据的一小部分:

data table

顶行包括表示不同树种的代码(例如PJ =杰克松)。数值代表调查图中每个物种的数量。每个案例代表一个由森林经理(B)评估过一次的立场,然后由监管政府机构(A)进行基于情节的调查。我想在R中使用chisq.test来确定两个样本取自同一总体的概率,主要是比较源A和源B的结果。对于每种情况,我想将0值转换为NA A和B源都有0。否则,我不必要地夸大测试的自由度。我是R.的新手。

我希望在很多情况下进行卡方检验,整个数据集最多包含15种。在大多数情况下,有2-7种物种需要处理。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以使用tidyverse函数并尝试类似:

df %>%
group_by(Case) %>%
mutate( PJ = if_else(sum(PJ) == 0, NA, PJ))

这样做,如果0的度量为Source,则总和为0,然后将该值替换为该组的NA。它消除了将数据转换为宽格式的需要。

此外,可能同时查看mutate_atmutate个多列。