Мои данные (образец) выглядят следующим образом:Условный перекодировать и сумма в R
mydata <- structure(list(x1 = c(0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L), x2 = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L, 4L, 4L), x3 = c(1L, 3L, 5L, 1L, 3L, 5L, 1L, 4L, 5L, 2L,
1L, 5L, 6L, 6L), week = c(0L, 0L, 0L, 0L, 0L, 0L, 1L, 30L, 50L,
22L, 52L, 36L, 25L, 26L), newar1 = c(0L, 0L, 2L, 0L, 0L, 2L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L), newvar2 = c(0L, 2L, 0L, 0L,
2L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L)), .Names = c("x1", "x2",
"x3", "week", "newar1", "newvar2"), class = "data.frame", row.names = c(NA,
-14L))
x1 x2 x3 week
0 1 1 0
0 2 3 0
0 3 5 0
0 1 1 0
0 2 3 0
0 3 5 0
1 1 1 1
1 2 4 30
1 3 5 50
1 1 2 22
1 2 1 52
1 3 5 36
1 4 6 25
1 4 6 26
Я хотел бы создать 1 новую переменную newvar1
:
если x1 = 0 => Я бы например, подсчитывать количество раз во всем наборе данных, где x1 равно 1 (только другие строки, исключая собственное наблюдение), но только подсчитывать строки с той же комбинацией x2 и x3 и строк, где число недели больше 24.
if x1 = 1 => Я хотел бы подсчитать количество раз во всем наборе данных, где x1 равно 1, но только подсчитывать строки с той же комбинацией x2 и x3 и строк, где число недели минус 25 больше нуля ((неделя-25)> 0)).
Под «sum» Я имею в виду, что количество раз x1 равно 1, если условия сохраняются.
Под «if» Я имею в виду, что я хочу только суммировать x1, когда выполняются условия, следующие за удержанием. В основном мой вопрос: как я могу суммировать определенные значения на основе условий?
Мои данные должны выглядеть следующим образом:
x1 x2 x3 week newvar1
0 1 1 0 0
0 2 3 0 0
0 3 5 0 2
0 1 1 0 0
0 2 3 0 0
0 3 5 0 2
1 1 1 1 0
1 2 4 30 0
1 3 5 50 1
1 1 2 22 0
1 2 1 52 0
1 3 5 36 0
1 4 6 25 0
1 4 6 26 1
В настоящее время у меня есть следующий код, но это не учитывает ограничений на x2=x3
и на неделю. Любые предложения, как это сделать?
mydata[,newvar1:=sum(x1), by=list(x2,x3)]
Пожалуйста, используйте dput() для обеспечения воспроизводимого примера –
Включено, спасибо. – research111
У меня возникли проблемы с пониманием критериев для 'newvar1' и' newvar2'. – jdobres