Я загрузил набор данных, D, в R, и я хотел бы выполнить частоту всех переменных в D против D $ binary_outcome. Как я могу это сделать? - PullRequest
2 голосов
/ 24 июля 2010

Я загрузил набор данных, D, в R, и я хотел бы выполнить частоту всех переменных в D по сравнению с D $ binary_outcome.Как мне это сделать?

Я хотел бы знать, есть ли какой-нибудь код, который является достаточно универсальным, и D может иметь любое количество переменных, и код должен иметь возможность обрабатывать набор данных с любым количеством переменных.

По сути, я хочу иметь возможность сделать что-то вроде

d = read.csv("c:/d.csv")
d.freq.varA = table(d$varA,d$binary_outcome)
d.freq.varB = table(d$varB,d$binary_outcome)
...
d.freq.varZZZ = table(d$varZZZ,d$binary_outcome)

для всех переменных от A до ZZZ в d.

Ответы [ 2 ]

2 голосов
/ 24 июля 2010

Я думаю, что это должно вас куда-то достать.Это может выглядеть лучше в цикле.

lapply(names(d)[grep('var', names(d))],
       function(name){
             assign(name, table(d[,name],d$binary_outcome), 
             envir = .GlobalEnv)
             }
      )
0 голосов
/ 24 июля 2010

У каждой переменной одинаковые уровни?Если это так, если вы сначала reshape::melt() данных, вы можете создать одну многомерную таблицу.

d.m <- melt(d, id = "binary_outcome")
freq.all.vars <- with(d.m, table(binary_outcome, value, variable))

freq.var.a <- freq.all.vars[,,"varA"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...