您可以将summary
方法(如下所示)的输出传输/复制到Excel工作表吗?
> summary(p2p_dt_SKILL_A[p2p_dt_SKILL_A$Patch %in% c("BVG1")])
Patch Skill Date TOR_MWF TOR_MA TOR_DL TOR_A TT_PR_TSK_A TT_PR_TSK_DL
BVG1 :100 A :100 Min. :2014-01-17 Min. :4.050 Min. :3.740 Min. :3.720 Min. :3.830 Min. : 98.49 Min. :104.8
BVG11: 0 BROADBAND : 0 1st Qu.:2014-07-09 1st Qu.:4.718 1st Qu.:4.550 1st Qu.:3.958 1st Qu.:4.100 1st Qu.:105.07 1st Qu.:109.9
BVG12: 0 CAL : 0 Median :2014-12-29 Median :5.205 Median :4.860 Median :4.040 Median :4.165 Median :109.48 Median :112.9
BVG13: 0 CIDT : 0 Mean :2014-12-29 Mean :5.126 Mean :4.884 Mean :4.050 Mean :4.214 Mean :108.43 Mean :112.7
BVG14: 0 COPPER_PROV: 0 3rd Qu.:2015-06-20 3rd Qu.:5.487 3rd Qu.:5.237 3rd Qu.:4.150 3rd Qu.:4.340 3rd Qu.:111.22 3rd Qu.:115.2
BVG15: 0 FTTC_CEASE : 0 Max. :2015-12-11 Max. :6.040 Max. :5.990 Max. :4.350 Max. :4.630 Max. :119.06 Max. :122.6
BVG16: 0 (Other) : 0
TT_PR_TSK_MA TT_PR_TSK_MWF TASK_COUNT_MWF TASK_COUNT_MA TASK_COUNT_DL TASK_COUNT_A SR_MWF SR_MA SR_DL
Min. : 76.13 Min. : 75.50 Min. : 889 Min. : 434.0 Min. : 7391 Min. : 8852 Min. :81.18 Min. :65.44 Min. :76.30
1st Qu.: 87.06 1st Qu.: 83.10 1st Qu.:1318 1st Qu.: 561.5 1st Qu.: 9983 1st Qu.:12192 1st Qu.:85.67 1st Qu.:76.81 1st Qu.:81.45
Median : 93.83 Median : 87.61 Median :1907 Median : 714.0 Median :10450 Median :13487 Median :87.06 Median :83.24 Median :82.23
Mean : 94.26 Mean : 89.88 Mean :2074 Mean : 783.1 Mean :10643 Mean :13501 Mean :87.09 Mean :81.34 Mean :82.16
3rd Qu.:100.22 3rd Qu.: 96.66 3rd Qu.:2745 3rd Qu.: 925.0 3rd Qu.:11356 3rd Qu.:14560 3rd Qu.:88.82 3rd Qu.:85.81 3rd Qu.:83.12
Max. :121.93 Max. :112.59 Max. :4016 Max. :1827.0 Max. :13977 Max. :17518 Max. :91.84 Max. :89.61 Max. :84.32
SR_A FURTHERS_COUNT_MWF FURTHERS_COUNT_MA FURTHERS_COUNT_DL FURTHERS_COUNT_A SOD_FWIH_A Prod_MWF Prod_MA Prod_DL
Min. :77.03 Min. :114.0 Min. : 79.0 Min. :1405 Min. :1632 Min. :1.050 Min. :3.370 Min. :2.450 Min. :2.960
1st Qu.:81.94 1st Qu.:176.8 1st Qu.:113.0 1st Qu.:1714 1st Qu.:2072 1st Qu.:1.070 1st Qu.:4.117 1st Qu.:3.580 1st Qu.:3.237
Median :82.67 Median :262.5 Median :131.5 Median :1868 Median :2223 Median :1.110 Median :4.590 Median :4.005 Median :3.315
Mean :82.91 Mean :258.3 Mean :136.2 Mean :1904 Mean :2298 Mean :1.099 Mean :4.466 Mean :3.987 Mean :3.328
3rd Qu.:84.22 3rd Qu.:324.2 3rd Qu.:159.5 3rd Qu.:2048 3rd Qu.:2448 3rd Qu.:1.120 3rd Qu.:4.820 3rd Qu.:4.418 3rd Qu.:3.408
Max. :85.72 Max. :484.0 Max. :217.0 Max. :3111 Max. :3801 Max. :1.150 Max. :5.360 Max. :5.240 Max. :3.650
Prod_A OTDFTD_RATE_A EOD_FWIH_MWF EOD_FWIH_MA EOD_FWIH_DL EOD_FWIH_A ASSIST_RATE_MWF ASSIST_RATE_MA ASSIST_RATE_DL
Min. :3.050 Min. : 7.050 Min. :1.090 Min. :1.120 Min. :1.190 Min. :1.170 Min. :0.0300 Min. :0.0000 Min. :0.570
1st Qu.:3.357 1st Qu.: 8.883 1st Qu.:1.130 1st Qu.:1.167 1st Qu.:1.200 1st Qu.:1.190 1st Qu.:0.2900 1st Qu.:0.2000 1st Qu.:0.970
Median :3.440 Median : 9.790 Median :1.150 Median :1.200 Median :1.220 Median :1.210 Median :0.4000 Median :0.3600 Median :1.100
Mean :3.495 Mean : 9.809 Mean :1.149 Mean :1.237 Mean :1.218 Mean :1.207 Mean :0.4867 Mean :0.4174 Mean :1.196
3rd Qu.:3.632 3rd Qu.:10.845 3rd Qu.:1.170 3rd Qu.:1.300 3rd Qu.:1.230 3rd Qu.:1.220 3rd Qu.:0.5975 3rd Qu.:0.5725 3rd Qu.:1.300
Max. :3.950 Max. :14.290 Max. :1.230 Max. :1.530 Max. :1.310 Max. :1.300 Max. :2.0700 Max. :1.9200 Max. :2.430
ASSIST_RATE_A HOME_DL_ENGS VISITING_DL_ENGS month year prod_dl_above_3
Min. :0.4300 Min. :509.0 Min. : 7.00 May :10 Min. :2014 no : 1
1st Qu.:0.8275 1st Qu.:585.8 1st Qu.:26.00 Oct :10 1st Qu.:2014 yes:99
Median :0.9750 Median :617.0 Median :35.50 Jul : 9 Median :2014
Mean :1.0453 Mean :608.0 Mean :38.38 Aug : 9 Mean :2014
3rd Qu.:1.1300 3rd Qu.:639.0 3rd Qu.:51.25 Jan : 8 3rd Qu.:2015
Max. :2.2300 Max. :660.0 Max. :83.00 Feb : 8 Max. :2015
(Other):46
我可以通过以下方式将多个对象写入Excel工作表:
save.xlsx <- function (file, ...)
{
require(xlsx, quietly = TRUE)
objects <- list(...)
fargs <- as.list(match.call(expand.dots = TRUE))
objnames <- as.character(fargs)[-c(1, 2)]
nobjects <- length(objects)
for (i in 1:nobjects) {
if (i == 1)
write.xlsx(objects[[i]], file, sheetName = objnames[i])
else write.xlsx(objects[[i]], file, sheetName = objnames[i],
append = TRUE)
}
print(paste("Workbook", file, "has", nobjects, "worksheets."))
}
但是这不能将Summary()
输出从R复制到Excel工作表。有没有办法可以做到这一点?
原因是我需要在excel中将此信息/输出复制到一个很好的表格格式。
答案 0 :(得分:3)
探索'摘要',我们看到在调用summary(a_data_frame)
时,我们会得到每列摘要的表格。我们也可以在上游解决我们的问题,而不是捕获输出。我们可以使用lapply
在每列上调用摘要,然后将这些输出组合在一起。
编辑:您的数据包含分类和连续变量。在我自己的工作流程中,我总是发现以不同方式处理它们最容易,因为它们的表示可能不同。请注意,在提供的输出中,具有大量类别的变量是截断,导致这些结果不是最理想的。
#create some data
set.seed(123)
dat <- data.frame(matrix(rnorm(1000),ncol=5))
dat$CatA <- factor(sample(LETTERS[1:10],nrow(dat),T))
dat$CatB <- factor(sample(LETTERS[1:2], nrow(dat),T))
#find out which data are categorical and which continuous.
#Cutoff depends on data, use your judgement.
cont_cols <- colnames(dat)[sapply(dat, function(x) length(unique(x)))>10]
cat_cols <- setdiff(colnames(dat),cont_cols)
#create summary data for continuous variables
res_cont <- data.frame(do.call(rbind,lapply(dat[,cont_cols],summary)))
#add column with variable name (unwise to store in rownames)
res_cont$variable <- rownames(res_cont)
res_cont
# Min. X1st.Qu. Median Mean X3rd.Qu. Max. variable
# X1 -2.309 -0.6258 -0.058740 -0.00857 0.5684 3.241 X1
# X2 -2.466 -0.5908 0.022830 0.04212 0.7148 2.571 X2
# X3 -2.810 -0.5575 0.075830 0.03178 0.6810 2.430 X3
# X4 -2.602 -0.6931 0.002188 -0.02189 0.6433 2.692 X4
# X5 -2.508 -0.6687 0.024790 0.03720 0.6678 2.685 X5
我们对分类变量做同样的事情
res_cat <- do.call(rbind,lapply(cat_cols, function(x){
res <- data.frame(table(dat[,x],useNA="always")) #added it to deal with missings, can be changes
res$variable <- x
colnames(res)[1] <- "Category"
res
}
))
将输出写入文件非常简单。