Снова я совершенно новый в R и пытаюсь разобраться с проблемой, с которой мне пришлось столкнуться. У меня есть набор данных «DS» с колонке «группы» и «матча» мне нужно рассчитать процент соответствия группы столбцов в каждой группе первая группа будет Вторая группа , третий и т. Д.вычисление процентной группы по группам в столбце R
У меня теперь данные:
>ds
group col1 col2 match
001 F M FALSE
001 F M FALSE
001 F M FALSE
002 F M FALSE
002 M M TRUE
003 M F FALSE
003 F F TRUE
003 F F TRUE
003 F M FALSE
004 F M FALSE
005 F F TRUE
005 M F FALSE
005 M M TRUE
006 M M TRUE
006 F M FALSE
006 F M FALSE
006 F M FALSE
006 F M FALSE
006 F F TRUE
006 F M FALSE
006 F M FALSE
Desired result:
group | col1 | col2 | match | mismatch % | Match %
001 F M FALSE 1.0 0
001 F M FALSE
001 F M FALSE
002 F M FALSE 0.50 0.50
002 M M TRUE
003 M F FALSE 0.50 0.50
003 F F TRUE
003 F F TRUE
003 F M FALSE
004 F M FALSE 1.0 0
005 F F TRUE 0.66 0.33
005 M F FALSE
005 M M TRUE
006 M M TRUE
006 F M FALSE 0.75 0.25
006 F M FALSE
006 F M FALSE
006 F M FALSE
006 F F TRUE
006 F M FALSE
006 F M FALSE
Я знаю, как вычислить, если для всего столбца:
percentage <- table(ds$match)
cbind(percentage,prop.table(percentage))
, но не может принять его для моего решения, показанного выше
Спасибо
Вы просто хотите 'prop.table (таблица (DS $ группу, Д.С. $ MATCH), 1)'? – thelatemail
Hi theletemail, спасибо за ваш ответ, похоже, ваше решение действительно вычисляет процент по группам для сопоставления столбцов, но вопрос: как сделать это так, как это нужно в нужном формате? – Zaza
Вы можете сделать что-то вроде 'ds $ match_per <- with (ds, ave (match, group, FUN = function (x) c (sum (x)/length (x), rep (NA, length (x) -1)))) ', но это кажется немного расточительным, чтобы иметь все пустые ячейки. – thelatemail