1
1つの列に一致するデータフレームの最初の行とnの行の差/継続時間を計算しようとしています。その値を新しい列「duration」に配置したい。サンプルデータ:以下。列の値と一致する最初とn行の継続時間/差分を計算します
y <- data.frame(c("USA", "USA", "USA", "France", "France", "Mexico", "Mexico", "Mexico"), c(1992, 1993, 1994, 1989, 1990, 1999, 2000, 2001))
colnames(y) <- c("Country", "Year")
y$Year <- as.integer(y$Year) # this is to match the class of my actual data
私の望ましい結果は次のとおりです。
1992 USA 0
1993 USA 1
1994 USA 2
1989 France 0
1990 France 1
1999 Mexico 0
2000 Mexico 1
2001 Mexico 2
y <- y %>% group_by(Country) %>% mutate(duration = Year - lag(Year))
を使用してみましたが、私は唯一の実際の遅れ年度(例えば1999)を取得したり、唯一の違いを計算することができます連続した行の間で、国の最初の行の場合はNA、同じ国の場合は1行になります。 Manyq & a'sdifference between sequential rowsに焦点を当て、最初とn行の間ではない。
思考?
あなたは '(Y、AVE(seq_along(年)、国、FUN = seq_along)-1)'とか、%>%差異 'Y%>%GROUP_BY(国)であれば、これを行うことができますmutate(duration = Year - first(Year)) ' – akrun
ありがとう、@akrun!これは素晴らしい。私はRに新しい人であり、それを理解しようと数時間を費やしましたが、間違った用語やプロセスを探していたに違いありません。再度、感謝します! – user6780841