私はこのデータフレームを持っています:
df <- data.frame(group=c("A", "A", "B", "B"), year=c(1980, 1986, 1990, 1992))
group year
1 A 1980
2 A 1986
3 B 1990
4 B 1992
次のように変更したいと思います。
これが結果になります:
group year pre
1 A 1978 pre1980
2 A 1979 pre1980
3 A 1984 pre1986
4 A 1985 pre1986
5 B 1988 pre1990
6 B 1989 pre1990
7 B 1990 pre1992
8 B 1991 pre1992
新しい列を追加するのは簡単です。
df$pre <- paste("pre", df$year, sep="")
しかし、私はそれぞれの年で新しい行を追加する方法に固執しています(もちろん、まったく新しいデータフレームを作成することも同様に良いでしょう)。ヒントはありますか?
base R
ftw:
data.frame(group = rep(df$group, each=2),
year = df[rep(1:nrow(df), each=2),]$year-2:1,
pre = paste0("pre",rep(df$year,each=2)))
# group year pre
# 1 A 1978 pre1980
# 2 A 1979 pre1980
# 3 A 1984 pre1986
# 4 A 1985 pre1986
# 5 B 1988 pre1990
# 6 B 1989 pre1990
# 7 B 1990 pre1992
# 8 B 1991 pre1992
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加