好日子長的數據格式工作,與R中
d <- c(1,1,1,2,2,2,3,3,3)
e <- c(5,6,7,5,6,7,5,6,7)
f <- c(0,0,1,0,1,0,0,0,1)
df <- data.frame(d,e,f)
我有數據看起來就像上面。我需要做的是爲每個d的唯一元素找到f中的第一個非零值,並在e中找到相應的值。具體而言,我想要另一個向量g,所以它看起來像這樣:
d <- c(1,1,1,2,2,2,3,3,3)
e <- c(5,6,7,5,6,7,5,6,7)
f <- c(0,0,1,0,1,0,0,0,1)
g <- c(7,7,7,6,6,6,7,7,7)
df <- data.frame(d,e,f,g)
建議這麼做很容易?我以爲我可以使用split(),但在分割後使用which()時遇到了問題。我可以用AVE這樣的:
foo <- function(x){which(x>0)[1]}
df$t <- ave(df$f,df$d,FUN=foo)
但我無法找到e值。任何幫助表示讚賞。