答案 0 :(得分:1)
使用dplyr
,我们可以group_by
Seg
并获得相应的Vol
,其中Year = 2006
library(dplyr)
df %>%
group_by(Seg) %>%
mutate(Constnt_Vol = Vol[Year == 2006])
# Seg Year Vol Constnt_Vol
# <fct> <int> <dbl> <dbl>
#1 Agri 2006 23 23
#2 Agri 2007 29 23
#3 Agri 2008 16 23
#4 Agri 2009 31 23
#5 Auto 2006 12 12
#6 Auto 2007 34 12
#7 Auto 2008 45 12
#8 Auto 2009 32 12
在data.table
中应该是
library(data.table)
setDT(df)[, Constnt_Vol := Vol[Year == 2006], Seg]
这是假设每个Year = 2006
中只有Seg
行,如果有多个行,我们可以使用which.max
来获取第一行。 (Vol[which.max(Year == 2006)]
。
数据
df <- data.frame(Seg = rep(c("Agri", "Auto"), each =4),
Year =2006:2009, Vol = c(23, 29, 16, 31, 12, 34, 45, 32))
答案 1 :(得分:0)
我们可以使用
action.DragAndDropToOffset(el, 800, -300).Build().Perform();
library(dplyr)
df %>%
group_by(Seg) %>%
mutate(Constnt_Vol = Vol[match(2006, Year)])