У меня есть data.table следующим образом:
library(data.table)
DT <- fread(
"A B C D E F iso year
0 A 1 1 NA NA NLD 2009
1 Y 0 2 NA NA NLD 2009
0 Q 1 3 NA NA AUS 2011
1 NA 0 4 NA NA AUS 2011
0 0 1 7 NA NA NLD 2008
1 1 1 1 NA NA NLD 2008
0 1 1 3 NA NA AUS 2012
0 NA 1 NA 1 NA ECU 2009
1 NA 0 NA 2 0 ECU 2009
0 NA 0 NA 3 0 BRA 2011
1 NA 0 NA 4 0 BRA 2011
0 NA 1 NA 7 NA ECU 2008
1 NA 0 NA 1 0 ECU 2008
0 NA 0 NA 3 2 BRA 2012
1 NA 0 NA 4 NA BRA 2012",
header = TRUE
)
DT[, C1 := list(list(C)), by = iso]
Теперь я хотел бы проверить, превышает ли доля 1 для каждой строки в созданном столбце C1
50%.
Как бы я поступил так?
Желаемый результат:
DT <- fread(
"A B C D E F iso year C1 Outcome
0 A 1 1 NA NA NLD 2009 c(1,0,1,1) 1
1 Y 0 2 NA NA NLD 2009 c(1,0,1,1) 1
0 Q 1 3 NA NA AUS 2011 c(1,0,1) 1
1 NA 0 4 NA NA AUS 2011 c(1,0,1) 1
0 0 1 7 NA NA NLD 2008 c(1,0,1,1) 1
1 1 1 1 NA NA NLD 2008 c(1,0,1,1) 1
0 1 1 3 NA NA AUS 2012 c(1,0,1) 1
0 NA 1 NA 1 NA ECU 2009 c(1,0,1,0) 0
1 NA 0 NA 2 0 ECU 2009 c(1,0,1,0) 0
0 NA 0 NA 3 0 BRA 2011 c(0,0,0,0) 0
1 NA 0 NA 4 0 BRA 2011 c(0,0,0,0) 0
0 NA 1 NA 7 NA ECU 2008 c(1,0,1,0) 0
1 NA 0 NA 1 0 ECU 2008 c(1,0,1,0) 0
0 NA 0 NA 3 2 BRA 2012 c(0,0,0,0) 0
1 NA 0 NA 4 NA BRA 2012 c(0,0,0,0) 0",
header = TRUE
)