首先,我想说的是,我已经为这个基本问题找了很多答案,但似乎没有一个答案能解决这个问题。2如果这个问题已经有了答案,请原谅。
我想统计数据中行为的发生次数。
mydata <- data.frame(BH=c(
"sniff","explore","walking","explore","walking","trotting","sniff","explore","trotting","trotting","walking","walking","walking","watch","walking","trotting","watch","walking","walking","walking"))
输出必须是这样的
myoutput <- data.frame(
BH=c(
"sniff","explore","walking","explore","walking","trotting","sniff","explore","trotting","trotting","walking","walking","walking","watch","walking","trotting","watch","walking","walking","walking"),
mycount=c(
1,2,3,3,3,4,4,4,4,4,4,4,4,
5,5,5,5,5,5,5))
我曾经尝试过使用dplyr包中的ave和n_distinct,但是我只得到了给定行为的计数,而不是累积计数。
关于如何解决这个问题任何帮助或提示都将是感激的。
斯特夫
2条答案
按热度按时间5q4ezhmt1#
使用group-by操作和
cumsum
很容易做到这一点。我喜欢使用包data. table。wz1wpwve2#
这里有一个
tidyverse
的解-不像罗兰的解那样简洁,但它是有效的。