这看起来很简单,但我找不到一种方法来做它看起来很像R的。
如果您运行以下代码:
myDataFrame <- data.frame(Person = c("A", "A", "A", "A", "A", "A"),
Age = c(0, 1, 2, 3, 4, 5),
Observations = c(20, 25, 50, 45, 40, 30))
myDataFrame
您将看到以下输出:
> myDataFrame
Person Age Observations
1 A 0 20
2 A 1 25
3 A 2 50
4 A 3 45
5 A 4 40
6 A 5 30
请记住,有多个人,我想将0岁的观察结果合并到1岁的观察中。
输出将如下所示:
> myDataFrame
Person Age Observations
1 A 1 45
2 A 2 50
3 A 3 45
4 A 4 40
5 A 5 30
非常感谢任何有关如何以“R”方式执行此操作的帮助。
答案 0 :(得分:3)
我们改变了&#39; 0&#39; &#39;年龄&#39;中的值列到&#39; 1&#39;并使用aggregate
获取sum
观察结果&#39;由人员分组&#39;和&#39;年龄&#39;
myDataFrame$Age[myDataFrame$Age==0] <- 1
aggregate(Observations~., myDataFrame, FUN=sum)
# Person Age Observations
#1 A 1 45
#2 A 2 50
#3 A 3 45
#4 A 4 40
#5 A 5 30
答案 1 :(得分:2)
我们使用ifelse
中的mutate
将“年龄”中的0值更改为1,将“人物”,“年龄”列分组并使用summarise
获取{{ 1}}'观察'
sum
来自@akrun的每个提示的所有dplyr