私はこれにタイトルを付けるべきか分かりませんでした。新しいオーバーラップ変数
私は年と活動列を組み合わせたい人、年、および活動
df <- data.frame("id" = c("1", "1", "1", "2", "2","3"), "years" = rep(1971, 6),
"activity" = c("a","b","c","d","e","e"))
id years activity
1 1 1971 a
2 1 1971 b
3 1 1971 c
4 2 1971 d
5 2 1971 e
6 3 1971 e
のデータセットを持っていますが、毎年のために、オリジナル年の欄に、私は生成したいです+/- ID
私は2つの段階でこれをやった場合との関連を保持したまま3年、:
id all_years
1 1968
1 1969
1 1970
1 1971
1 1972
1 1973
1 1974
:idに 「1」の元年はとてもID 1のための+/- 3年になるだろう、1971年です
ステップ2では、このall_yearsカラムと元のdfのアクティビティカラムを結合し、IDを保持したいとします。したがって、id "1"は3つのアクティビティ(a、b、c)と7年(1968:1964)なので、id "1"は新しい結合カラムに10回表示されます。ありがとう、いつものように
id year_and_activities
1 a
1 b
1 c
1 1968
1 1969
1 1970
1 1971
1 1972
1 1973
1 1974
2 d
2 e
2 1968
...
2 1974
...
3 e
...
:
だから、最終的に、私はこのようなものに終わるだろう!
ご希望のものを明確にしてください。あなたの例には 'rep(" 1971 ")、6)'があるので、その6つのインスタンスはどこに行きますか?あなたの出力は単に "df $ id"の各要素を取り、その隣に 'seq(df $ years-3、df $ years + 3)'を貼り付けます。そのシーケンスの6つのインスタンスと、それに続く他のすべての入力年の値と同様の出力ブロックが必要ですか?また、「年」を文字列ではなく数値として残すのはどうですか?物事をもっと簡単に保つでしょう。ああ、 "活動"の値はどうなるの?彼らは "id"か "year"を追跡していますか? –
私は理解できない質問のように思われるものをダウン投票しました。 –
貧しい疑問文言とひどいコードについては申し訳ありません。うまくいけば、これは質問をより分かりやすくします。 – crock1255