R and latex: Tabulating ranked data frame -
i generated data frame gives me top n variables , associated values melting original data frame , applying ranking function. ranked data frame looks this:
sysid variable value class1 class2 1 1 s.noun_noun 0.13121019 open open 2 1 s.verb_verb 0.12611465 open open 3 1 s.det_det 0.04076433 closed closed 4 1 s.verb_noun 0.03821656 open open 5 1 s.prep_det 0.03312102 closed closed 6 2 s.noun_noun 0.19791667 open open 7 2 s.verb_verb 0.13750000 open open 8 2 s.det_det 0.04375000 closed closed 9 2 s.prn_prn 0.03958333 closed closed 10 2 s.coord_prep 0.03750000 closed closed 11 3 s.noun_noun 0.16730769 open open 12 3 s.verb_verb 0.14615385 open open 13 3 s.det_det 0.05384615 closed closed 14 3 s.coord_prep 0.04423077 closed closed 15 3 s.prep_prep 0.04230769 closed closed now i'm trying print latex document. i'd this:
1 2 … variable value variable value 1 s.noun_noun 0.13121019 s.noun_noun 0.19791667 2 s.verb_verb 0.12611465 s.verb_verb 0.1375 3 s.det_det 0.04076433 s.det_det 0.04375 4 s.verb_noun 0.03821656 s.prn_prn 0.03958333 5 s.prep_det 0.03312102 s.coord_prep 0.0375 i see tabular tables package potentially able this, can't figure out correct formula use. can recommend either tabular formula can format data in format, or package/function use? help.
here pretty manual way, if sysid comprised of many levels, might not seem viable option (before editing, noticed original sysid went 8). assumes data in object called df, change appropriately:
g<-split(df[,2:3], df$sysid) #here merge them side side #note variable names not right #add new row sysid ggg<- rbind.data.frame(c(g[[1]],g[[2]],g[[3]])) gggnames <- c("variable 1", "value 1", "variable 2", "value 2", "variable 3", "value 3") colnames(ggg) <- gggnames stargazer(ggg, summary=false) this output latex table copy , paste.
the 1 line solution library offered in comments @docendo:
stargazer( do.call(cbind, split(df[2:3], df$sysid)), summary=false) again, df object of data.
if table long, xtable solution work. again, taking comments , assuming original sysid, suggests post-processing (removing bottom first table , top second table solution have in 1 table):
gggg <- do.call(cbind, split(df[2:3], df$sysid)) xtable(gggg[,1:8]) xtable(gggg[,9:16])
Comments
Post a Comment