Имам рамка от данни (брой грешки в MS Office за няколко години), която използвам, за да генерирам успешно разразим се:
df_Office_final_sparktable component faults time Excel 2 2001 Excel 1 2002 Excel 5 2003 Excel 5 2004 Excel 5 2005 Excel 6 2006 Excel 0 2007 Excel 0 2008 Excel 0 2009 Excel 0 2010 Excel 0 2011 Excel 0 2012 PPT 1 2001 PPT 1 2002 PPT 1 2003 PPT 1 2004 PPT 2 2005 PPT 3 2006 PPT 0 2007 PPT 0 2008 PPT 0 2009 PPT 0 2010 PPT 0 2011 PPT 0 2012 Word 5 2001 Word 4 2002 Word 3 2003 Word 1 2004 Word 3 2005 Word 2 2006 Word 5 2007 Word 3 2008 Word 0 2009 Word 1 2010 Word 0 2011 Word 0 2012
</ Предварително></ Код> Ето съответния код:
Office_content<-list(
2001=function(x) { head(x,1) }, 2012=function(x) { tail(x,1) }, Office_content[["Office Trend"]]<-newSparkLine()) Office_varType<-rep("outages",3) df_Office_final_sparktable<-df_Office_final_sparktable[,c("component","faults","time")] df_Office_final_sparktable$time<-as.numeric(as.character(df_Office_final_sparktable$time)) Office_dat<-reshapeExt(df_Office_final_sparktable,idvar="component",varying=list(2)) Office_sparkTab<-newSparkTable(Office_dat,Office_content,Office_varType) showSparkTable (Office_sparkTab , outputType = "html", filename = "t1")
</ Предварително></ Код> Както можете да видите, мога да изведа таблица на2001 и 2012 грешки с помощта на командите на главата и съответната искрица. Въпреки това не мога да разбера как да изведа общите грешки от 2002 - 2011 г. (включително) Опитах се да извадя втория ред от рамката за данни, използвайки следния код:
df_Office_final_sparktable[2:2, 1:3]
</ Предварително></ Код> Разбрах, че това не е правилно, тъй като няма начинза мен да преобразувам тази команда обратно във функция, така че се чудех дали трябва да напиша 10 отделни функции, които трябва да се обадя, за да извлека необходимите сборове на грешки за всеки компонент на офиса годишно?
Благодаря предварително, Джонатан
Отговори:
0 за отговор № 1Добре, че най-накрая разбрах това. Трябваше да създам 10 функции, които да изтеглят втория ред от рамката с данни така:
head_row2_Office <- function(x) { result <- subset(x, time =="2002" & component =="Excel", select=c(1:3)) return (result) }
</ Предварително></ Код> След това трябваше да извикам функциите в списъка функция така:
Office_content<-list( Jan=function(x) { head(x,1) }, Feb=function(x) { head_row2_Office(x) }, Mar=function(x) { head_row3_Office(x) }, Apr=function(x) { head_row4_Office(x) }, May=function(x) { head_row5_Office(x) }, Jun=function(x) { head_row6_Office(x) }, Jul=function(x) { head_row7_Office(x) }, Aug=function(x) { head_row8_Office(x) }, Sep=function(x) { head_row9_Office(x) }, Oct=function(x) { head_row10_Office(x) }, Nov=function(x) { head_row11_Office(x) }, Dec=function(x) { tail(x,1) }, Office_content[["Office Trend"]]<-newSparkLine() ) Office_varType<-rep("outages",13) # set the tables columns to 13 for table + graph df_Office_final_sparktable<-df_Office_final_sparktable[,c("component","faults","time")] df_Office_final_sparktable$time<-as.numeric(as.character(df_Office_final_sparktable$time)) Office_dat<-reshapeExt(df_Office_final_sparktable,idvar="component",varying=list(2)) Office_sparkTab<-newSparkTable(Office_dat,Office_content,Office_varType) showSparkTable (Office_sparkTab , outputType = "html", filename = "t1")
</ Предварително></ Код>