Вы можете сделать следующее
by(df, df$Sex, function(x) sum(x$Weight < 3000) / length(x$Weight))
#df$Sex: 1
#[1] 0.6
#------------------------------------------------------------
#df$Sex: 2
#[1] 0.125
Или вместо by
вы также можете использовать tapply
, который возвращает именованный numeric
вектор
with(df, tapply(Weight, Sex, function(x) sum(x < 3000) / length(x)))
# 1 2
#0.600 0.125
<час> df <- read.table(text =
"Time Sex Weight Time.midnight
0005 1 3837 5
0104 1 3334 64
0118 2 3554 78
0155 2 3838 115
0257 2 3625 177
0405 1 2208 245
0407 1 1745 247
0422 2 2846 262
0431 2 3166 271
0708 2 3520 428
0735 2 3380 455
0812 2 3294 492
0814 1 2576 494", header = T)
Существует также пакет catdoc (ссылка Ubuntu), который включает xls2csv утилиту.
Быстрый поиск apt-cache
поднятый python-excelerator пакета Ubuntu для excelerator, который включает py_xls2html
, py_xls2csv
и py_xls2txt
utlities. Это будет работать на Вас?
Ваш вопрос напомнил мне об антислове. Я искал и нашел анти-Excel. Я никогда не использовал его, таким образом, я не могу ручаться за то, как хорошо это работает или делает ли это достижимым задача, которую Вы имеете под рукой. Кроме того, я не забываю использовать утилиту, названную 'кв/см' на Linux к созданным электронным таблицам на консоли---, хотя, я не знаю, способно ли это к интерпретации файлов XLS.