У меня есть 24 переменных, для которых мне нужно получить частоту в сочетании с другими переменными. В SAS это будет простой макрос:
%macro results (house_color,variable);
proc freq data = all_houses;
table variable*majority_&house_color. / missing out= &varibale._by_&house_color.;
run;
% mend;
%results( house_color = purple, variable=pool_or_no_pool) ;
%results (house_color = blue, variable = upb);
Я попытался создать функцию в R, используя код, указанный в другом вопросе, который я задал ранее:
results <- function(x,y,d,z){
freqs <- freqlist(table(z[c(x,y)],useNA = "always"))
freq_df <- as.data.frame(freqs) %>% select(1:3)
colnames(freq_df)[3] <- d
freq_df
}
, где x - это первая переменная, y - вторая переменная, d - это то, что я хочу, чтобы столбцы Freq были переименованы, а z - это набор данных. Однако когда я получаю результат от функции и пытаюсь использовать cbind для консолидации всей информации, я получаю следующую ошибку:
Ошибка в data.frame (..., check.names = FALSE): аргументы подразумевают разное количество строк: 10, 11
Мне было интересно, есть ли более простой способ получить таблицу частот этих 24 переменных и либо сложить, либо cbind информацию не создавая слишком много NA. Я использую rbind.fill
, но создание фрейма данных беспорядочное и имеет много NA.
Заранее благодарю за помощь.