0
data <- read.table(text=
"ID1 ID2 From To
12 127 20090701 20090703
12 127 20090704 20090711
12 127 20090707 20100831
12 127 20100901 99991231
18 880 19740401 20091129
18 880 20100608 99991231
12 127 20080102 20080305
12 127 20080306 20080329
12 128 20080620 20090204"
, header=T)
Iは、以下の形式に上記データフレームを変換したい:識別子をグループ化して期間を集計する方法は?
result <- read.table(text=
"ID1 ID2 From To
12 127 20080102 20080329
12 127 20090701 99991231
12 128 20080620 20090204
18 880 19740401 20091129
18 880 20100608 99991231"
, header=T)
いくつかの単語で形質転換のはID1、ID2及び対象が(連続的にアクティブでなかったユニークな時間によってグループにあります1日の休憩)。それは不要な場合に複数の行を削除します(日付1から日付2までの1つの連続した活動期間)。
解決策を指摘します。手始めに
、日付を変換:
df$From <- as.Date(as.character(df$From), format = "%Y%m%d")
df$To <- as.Date(as.character(df$To), format = "%Y%m%d")
まず、 'From'と' To'カラムを次のように変換する必要があります: 'df $ From < - as.Date(as.character(df $ From)、format ="%Y%m%d ")これにより、2日間が連続しているかどうかを確認することができます。 – Marcel10
間違いなく、文字列を日付に変換する必要があります。私はdf%>%group_by(ID1、ID2)%>%mutate(日付から取得するfunction1)%>%mutate(function2は日付を取得する)のようなdplyrソリューションを考えていました。私のループや何か似たようなものだと思います。 –
賢明なアプローチのようですね。がんばろう! – Marcel10