2015-10-20 2 views
0

Я был бы признателен за вашу помощь в решении моей проблемы. Я делаю Дельта Анализ репутации клиентов 13 против 14, чтобы определить уровни изменений в репутации для каждого клиента. Чтобы улучшить повторяемость, мне нужно удалить столбцы нулей из таблицы, сгенерированной с помощью кода. Я приложил результат HTML.Удалите столбцы нулевого размера в xtable [R]

"Reputation_Cutomer13" and ...14: categorical variables, [1,5] 
"CHR1413": categorical variable, [-5,5] 

library(etable) 
RCH1314Complete<-tabular.ade(x_vars="Reputation_Cutomer13", 
       rows=c("Reputation_Cutomer13"), rnames=c("Reputation_Cutomer13"), 
       cols=c("Reputation_Cutomer14", "CHR1413"), cnames=c("Reputation_Cutomer14", "CHR1413"), data= business_Delta1, FUN=n_cell) 

multi_table <-print (xtable(RCH1314Complete, caption="Reputation 13 vs (Reputation 14 and [change reputation])"), include.rownames=F, include.colnames=F, 
        caption.placement="top", type = "html", file="RCH1314Complete.html") 

<!-- html table generated in R 3.2.1 by xtable 1.7-4 package --> 
 
<!-- Mon Oct 19 13:09:45 2015 --> 
 
<table border=1> 
 
<caption align="top"> Reputation 13 vs (Reputation 14 and [change reputation]) </caption> 
 
    <tr> <td> </td> <td> Reputation_Cutomer13 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> 
 
    <tr> <td> Reputation_Cutomer14 </td> <td> </td> <td> 0 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> 1 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> 2 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> 3 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> 4 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> 5 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> 
 
    <tr> <td> CHR1413 </td> <td> </td> <td> -5 </td> <td> -4 </td> <td> -3 </td> <td> -2 </td> <td> -1 </td> <td> 0 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> <td> -5 </td> <td> -4 </td> <td> -3 </td> <td> -2 </td> <td> -1 </td> <td> 0 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> <td> -5 </td> <td> -4 </td> <td> -3 </td> <td> -2 </td> <td> -1 </td> <td> 0 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> <td> -5 </td> <td> -4 </td> <td> -3 </td> <td> -2 </td> <td> -1 </td> <td> 0 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> <td> -5 </td> <td> -4 </td> <td> -3 </td> <td> -2 </td> <td> -1 </td> <td> 0 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> <td> -5 </td> <td> -4 </td> <td> -3 </td> <td> -2 </td> <td> -1 </td> <td> 0 </td> <td> 1 </td> <td> 2 </td> <td> 3 </td> <td> 4 </td> <td> 5 </td> </tr> 
 
    <tr> <td> </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 317 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 1087 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 2971 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 3941 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 2272 </td> </tr> 
 
    <tr> <td> </td> <td> 1 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 321 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 61 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 157 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 207 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 147 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 20 </td> <td> 0 </td> </tr> 
 
    <tr> <td> </td> <td> 2 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 971 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 204 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 586 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 953 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 693 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 91 </td> <td> 0 </td> <td> 0 </td> </tr> 
 
    <tr> <td> </td> <td> 3 </td> <td> 0 </td> <td> 0 </td> <td> 2574 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 336 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 1176 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 3048 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 3132 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 621 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> </tr> 
 
    <tr> <td> </td> <td> 4 </td> <td> 0 </td> <td> 2345 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 279 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 934 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 3726 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 6507 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 2914 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> </tr> 
 
    <tr> <td> </td> <td> 5 </td> <td> 413 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 47 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 148 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 926 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 3051 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 6568 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> <td> 0 </td> </tr> 
 
    </table>

ответ

2

Это, вероятно, легче сделать путем удаления нулей перед вызовом xtable.

library(magrittr) 
mtcars_noZero <- lapply(mtcars, 
     function(x){ x[x == 0] <- ""; x}) %>% 
    as.data.frame(, stringsAsFactors = FALSE) 

Парочка больше вариантов для рассмотрения

Вы можете использовать sanitize.text.function, но это работает только на векторах характер, так что вам нужно изменить каждый столбец в таблице персонажу, прежде чем он будет работать , и я не уверен, что это сильно заработало над моим предыдущим ответом.

remove_zero <- function(x) gsub("0", "", x) 

mtcars <- as.data.frame(lapply(mtcars, as.character), 
         stringsAsFactors = FALSE) 

print(xtable(mtcars, 
      caption="Reputation 13 vs (Reputation 14 and [change reputation])"), 
     sanitize.text.function = remove_zero, 
     include.rownames=F, include.colnames=F, 
     caption.placement="top", type = "html") 
+0

Спасибо за ваш ответ. К сожалению, для меня это не работает, потому что нули в моем столе генерируются во время процесса, я имею в виду: Если у меня 100 клиентов по репутации 13 = 1. В 2014 году они могут менять репутацию от -1 до 5 с любым распространением .... плюс новые клиенты в 2014 году – user3591356

+0

Мне сложно понять, почему это не сработает. Вы должны поместить свой окончательный кадр данных через оператор 'lapply' непосредственно перед тем, как нажимать его на' print.xtable (xtable (...), ...) 'он должен работать нормально. Но я дал другой вариант, используя аргумент 'sanitize.text.function'. В любом случае, вам нужно сделать предварительную обработку перед тем, как перейти на 'xtable', и я не думаю, что этого можно избежать. – Benjamin

+0

благодарит за вашу помощь. Я запускаю первый вариант, но я потерял структуру таблицы, и я не могу пересмотреть результат. Как восстановить исходную структуру ?. – user3591356

Смежные вопросы