【发布时间】:2016-03-08 15:29:12
【问题描述】:
我正在尝试做一些与Scale relative to a value in each group (via dplyr) 非常相似的事情(但是这个解决方案似乎让 R 崩溃了)。我想为每个组复制一个值并添加一个重复该值的新列。作为一个例子,我有
library(dplyr)
data = expand.grid(
category = LETTERS[1:2],
year = 2000:2003)
data$value = runif(nrow(data))
data
category year value
1 A 2000 0.6278798
2 B 2000 0.6112281
3 A 2001 0.2170495
4 B 2001 0.6454874
5 A 2002 0.9234604
6 B 2002 0.9311204
7 A 2003 0.5387899
8 B 2003 0.5573527
我想要一个类似的数据框
data
category year value value2
1 A 2000 0.6278798 0.6278798
2 B 2000 0.6112281 0.6112281
3 A 2001 0.2170495 0.6278798
4 B 2001 0.6454874 0.6112281
5 A 2002 0.9234604 0.6278798
6 B 2002 0.9311204 0.6112281
7 A 2003 0.5387899 0.6278798
8 B 2003 0.5573527 0.6112281
即每个类别的值是 2000 年的值。我试图想出一个可扩展到给定过滤标准的通用解决方案,即类似
data %>% group_by(category) %>% mutate(value = filter(data, year==2002))
但是由于分配的长度不正确,这不起作用。
【问题讨论】: