我收集的数据(dat)有2个不同的桶,同一组(“Set”)的所有部分都填充了随机数量的大理石(“Marbles”) 有两种处理方式,“颜色”(蓝色/白色)和“尺寸”(小/大)。每个试验都在不同的“块”(即时间段)中完成。 2个桶都是一组的一部分。记录桶的位置(“位置”)。这是一个数据样本。
Map
对于每个独特的复制品(即颜色,组合,块,大小的唯一组合),我想找到大理石最大值的索引位置。
Colour Set Size Position Marbles Block
Blue 1 Small 1 8 1
Blue 1 Small 2 81 1
Blue 6 Small 1 14 2
Blue 6 Small 2 11 2
Blue 1 Large 4 0 1
Blue 1 Large 5 0 1
Blue 1 Large 1 3 1
Blue 1 Large 2 43 1
White 1 Small 1 8 1
White 1 Small 2 81 1
White 1 Small 6 7 1
White 6 Small 3 12 2
White 6 Small 4 25 2
White 2 Large 1 86 1
White 2 Large 2 77 1
White 1 Large 1 3 11
White 1 Large 2 43 11
我一直遇到错误,说找不到“%>%”。我验证了dplyr的安装,并确保从库中调用它。但是,我无法检测到这个问题,并且想知道它可能是一个我无法捕获的语法错误?
答案 0 :(得分:1)
第一条规则:从不永远在dplyr 之后加载plyr:)
现在回答这个问题。这将获得具有组内最大弹珠数的行的索引:
library(dplyr)
result_df <- dat %>%
group_by(colour, size, block, set) %>%
mutate(result = (marbles == max(marbles)))
result_vec <- which(result_df$result)
如果你想要布尔索引,你可以省略which()
。