df$value.cut = cut(df$value, breaks=c(0, 25, 100))
> with(df, table(value.cut, status, useNA='ifany'))
status
value.cut 0 1
(0,25] 26 19
(25,100] 26 24
<NA> 3 2
(Конечно, если хотите, это можно объединить в 1 строку, но я оставил здесь 2 для лучшей читаемости.)
РЕДАКТИРОВАТЬ: И если вы хотите таблицу пропорций, отформатированных как частоты, вы можете сделать:
df.tab = with(df, table(value.cut, status, useNA='ifany'))
df.tab[,] = paste(df.tab, ' (', 100*prop.table(df.tab), '%)', sep='')
> df.tab
status
value.cut 0 1
(0,25] 26 (26%) 19 (19%)
(25,100] 26 (26%) 24 (24%)
<NA> 3 (3%) 2 (2%)