2つのダミー変数を作成したい:a) x1のすべての負の変更をキャプチャするもの。負の変化== 1がある場合、そうでない場合は== 0。すべて-1(以上)変更を取得負の値をダミー変数に変換する方法は?
そしてB)。例えば:10.5〜9.5または10〜9(または10〜6)。これもまたダミーとして扱われます。-1以上の場合は== 1、それ以外の場合は== 0となります。
正弦波のデータはこのように見えますが、変数は各personIDの負の値をキャプチャする必要があります。
personid year x1
33 1990 0
33 1991 3.5
33 1992 2.75
33 1993 3.25
33 1994 6
34 1990 17
34 1991 9
34 1992 16.5
34 1993 16.75
次のコードを使用してください。
set.seed(100)
mydata <- data.frame(
x1 = sample(c(0:30, 1.5,5.75,9.25,10.25,11.75), 100, replace = TRUE),
personID = rep(c(1:10), each = 10)
)
私はそれがあまり役立ちません... ave
を使用して、これらの変数を生成しようとしました。
dput(data)
structure(list(personid = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 40L, 40L,
40L, 40L, 40L, 40L, 40L, 40L, 40L, 40L, 40L, 40L, 40L, 40L, 40L,
40L, 40L, 41L, 41L, 41L, 41L, 41L, 41L, 41L, 41L, 41L, 41L, 41L,
41L, 41L, 41L, 41L, 41L, 41L, 42L, 42L, 42L, 42L, 42L, 42L, 42L,
42L, 42L, 42L, 42L, 42L, 42L, 42L, 42L, 42L, 42L, 51L, 51L, 51L,
51L, 51L, 51L, 51L, 51L, 51L, 51L, 51L, 51L, 51L, 51L, 51L, 51L,
51L), x1 = c(37, 34, 30.75, 29, 37, 32.25, 25.75, 32.5, 27, 31,
28.5, 23.75, 25.75, 28.5, 28.5, 27.75, 25.75, 25.75, 27.25, 31,
32.5, 35.5, 27.25, 32.25, 30.5, 28.75, 29.5, 29, 29, 27, 28.75,
28.75, 25.75, 25.75, 22, 22, 29, 30, 20, 22, 12, 11.5, 10, 14.5,
24, 15.5, 23.5, 14, 24, 10, 9, 34, 16, 9.5, 19, 31, 20, 9.5,
9.5, 21, 29, 20, 26, 26, 24.5, 5, 16.5, 18.5, 22.5, 31.5, 23.5,
20, 15.25, 20.75, 32, 23.5, 25, 20, 27, 22.5, 24.5, 28.5, 18,
17.5, 18.5, 34, 30.5, 32.5, 31, 27, 31, 31, 35.5, 31, 31, 29,
31.5, 29.25, 31, 31, 28, 29)), .Names = c("personid", "x1"), class = "data.frame", row.names = c(NA,
-102L))
親愛なるベン、ありがとう。最初の値を設定するのは正しいです。私はあなたのコードを理解しようとしています。すべてを複製した後、私はdvalを自分のデータに入れます: 'mydata $ dval <-dval'。このダミーはすべて-1の変化をキャプチャしているようですが、それは正しいのですか?より小さな負の変化(例えば1.25対1)も捕捉したいのですが?ありがとう! – Boris