结合R DataFrame中的某些观察结果

时间:2015-09-03 12:28:41

标签: r

这看起来很简单,但我找不到一种方法来做它看起来很像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”方式执行此操作的帮助。

2 个答案:

答案 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