私はdf data
を持っています。同じ係数の場合は、前の列と行に存在する値を新しい列に追加したいと思います。ここで 条件の下で前の行の値を加算する
data <- structure(list(Id = c("a", "b", "b", "b", "a", "a", "b", "b",
"a", "a"), duration.minutes = c(NA, 139L, 535L, 150L, NA, NA,
145L, 545L, 144L, NA), event = structure(c(1L, 4L, 3L, 4L, 2L,
1L, 4L, 3L, 4L, 2L), .Label = c("enter", "exit", "stop", "trip"
), class = "factor")), .Names = c("Id", "duration.minutes", "event"
), class = "data.frame", row.names = 265:274)
と私はこのような「duration.minutes.past」と呼ばれる新しい列を追加したいと思います:
data <- structure(list(Id = c("a", "b", "b", "b", "a", "a", "b", "b",
"a", "a"), duration.minutes = c(NA, 139L, 535L, 150L, NA, NA,
145L, 545L, 144L, NA), event = structure(c(1L, 4L, 3L, 4L, 2L,
1L, 4L, 3L, 4L, 2L), .Label = c("enter", "exit", "stop", "trip"
), class = "factor"), duration.minutes.past = c(NA, NA, 139,
NA, NA, NA, NA, 145, NA, NA)), .Names = c("Id", "duration.minutes",
"event", "duration.minutes.past"), row.names = 265:274, class = "data.frame")
あなたが見ることができるように、私が追加しましたこの新しい列のduration.minutes.past
の前のtrip
と同じId
のものです。 Id
が異なる場合、または停止しない場合は、duration.minutes.past
の値はNAです。
大変助かりました!
また、良い解決策ですが、私のサンプルよりも多くの列があります:)。しかし、ありがとう! – Floni
@Floniもっと多くの列を持つことで何が問題になりますか? ':='を使用して新しい列を作成するので、他の列に影響はありません – akrun
真実、申し訳ありません - 完璧に動作します!ありがとうございました! – Floni