基于负荷曲线的聚类分析与预测

数据预处理

# 安装库专用

# 通过如下命令设定镜像
options(repos = 'http://mirrors.ustc.edu.cn/CRAN/')
# 查看镜像是否修改
getOption('repos')
# 尝试下载R包
#若有需要,进行安装
#install.packages('forecast')

‘http://mirrors.ustc.edu.cn/CRAN/’

#设置工作路径
setwd("D:/LengPY")
#导入数据
library(readxl)
data<-read_excel("电力.xlsx")
head(data)
A tibble: 6 × 32
时间东城站10kV广源线F10有功值东城站10kV工业园甲线F09有功值东城站10kV两报线F08有功值东城站10kV中惠甲线F07有功值东城站10kV奕垌线F06有功值东城站10kV东城线F05有功值东城站10kV碧桂园甲线F04有功值东城站10kV县府线F03有功值东城站10kV工业园乙线F11有功值...东城站10kV中惠乙线F22有功值东城站10kV佰利线F30有功值东城站10kV东轩线F29有功值东城站10kV大道线F28有功值东城站10kV华科乙线F27有功值东城站10kV华科甲线F26有功值东城站10kV金桂线F25有功值东城站10kV福兴线F24有功值东城站10kV龙塘线F23有功值汇总
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
2021-03-01 00.8121.3831.0150.2501.2220.6221.4670.364...0.8280.3811.1270.7890.06100.8221.596019.089
2021-03-01T00:14:59.9999997904524240000.7361.3070.9090.2541.1840.5751.3580.351...0.7830.3381.0990.7950.07600.7221.532018.389
2021-03-01T00:30:00.0000002095475760000.7531.1970.8540.2281.0870.5711.3280.326...0.7490.3651.0410.6760.06400.6821.462018.181
2021-03-01T00:45:00.000 00.4361.1380.7230.2111.0020.5241.2770.321...0.7130.3591.0200.6790.00000.6581.410017.341
2021-03-01T00:59:59.9999997904524240000.4311.0700.7820.1780.9300.5921.2180.148...0.6730.3620.9870.6210.06700.6031.349016.424
2021-03-01T01:15:00.0000002095475760000.4230.9810.7270.1650.9260.5751.1970.144...0.6210.3650.9680.6060.00000.5691.282015.888

时间序列初步分析

白噪声检验
如果时间序列数据没有通过白噪声检验,则说明该序列为随机数序列,则没有建立时间序列模型进行分析的必要。

单位根检验 用来判断时间序列是否为平稳序列

协整检验和Granger因果检验

library(dplyr)
library(tidyr)
library(zoo)
library(tseries)
library(ggfortify)library(gridExtra)library(forecast)
Warning message:"package 'ggfortify' was built under R version 4.0.4"Loading required package: ggplot2Warning message:"package 'ggplot2' was built under R version 4.0.4"Warning message:"package 'gridExtra' was built under R version 4.0.4"Attaching package: 'gridExtra'

The following object is masked from 'package:dplyr':    combine

Warning message:"package 'forecast' was built under R version 4.0.4"Registered S3 methods overwritten by 'forecast':  method                 from       autoplot.Arima         ggfortify  autoplot.acf           ggfortify  autoplot.ar            ggfortify  autoplot.bats          ggfortify  autoplot.decomposed.ts ggfortify  autoplot.ets           ggfortify  autoplot.forecast      ggfortify  autoplot.stl           ggfortify  autoplot.ts            ggfortify  fitted.ar              ggfortify  fortify.ts             ggfortify  residuals.ar           ggfortify

#将汇总数据转换为时间ts格式ARMAdata <- ts(data$汇总)#绘制时序图plot.ts(ARMAdata)

可发现,存在明显的周期性,同时也有一定的趋势性,可能和气候转暖,导致电器使用率提高导致用电较多

## 白噪声检验Box.test(ARMAdata,type ="Ljung-Box")

	Box-Ljung testdata:  ARMAdataX-squared = 2927.2, df = 1, p-value < 2.2e-16

p-value < 2.2e-16 说明该序列为非随机数据,可以进行预测分析

## 平稳性检验,单位根检验adf.test(ARMAdata)
Warning message in adf.test(ARMAdata):"p-value smaller than printed p-value"




	Augmented Dickey-Fuller Test

data:  ARMAdata
Dickey-Fuller = -8.9703, Lag order = 14, p-value = 0.01
alternative hypothesis: stationary

p-value = 0.01,说明数据是平稳的

## 分析序列的自相关系数和偏自相关系数确定参数p和q
p1 <- autoplot(acf(ARMAdata,lag.max =300,plot = F))+
  ggtitle("序列自相关图")
p2 <- autoplot(pacf(ARMAdata,lag.max = 50,plot = F))+
  ggtitle("序列偏自相关图")
gridExtra::grid.arrange(p1,p2,nrow=2)

在这里插入图片描述

可发现,存在一定周期性,其中周期大概为96(即每天有多少记录),定阶不太熟,可用autoarima确定模型

## 偏自相关图3阶后截尾,可以认为p的取值为5左右,


## 通过观察自相关系数和偏自相关系数虽然可以确定p和q,但是这不是最好的方法,
## R提供了自动寻找序列合适的参数的函数
#利用函数自动定阶,确定合适的参数
auto.arima(ARMAdata)
Series: ARMAdata 
ARIMA(1,1,2) 

Coefficients:
         ar1      ma1     ma2
      0.5867  -0.0739  0.2721
s.e.  0.0285   0.0309  0.0218

sigma^2 estimated as 1.034:  log likelihood=-4270.49
AIC=8548.98   AICc=8548.99   BIC=8572.97
## 可以发现较好的ARMA模型为ARIMA(1,1,2)

## 对数据建立ARIMA(1,1,2)模型,并预测后面的数据
ARMAmod <- arima(ARMAdata,order = c(1,1,2))
summary(ARMAmod)
Call:
arima(x = ARMAdata, order = c(1, 1, 2))

Coefficients:
         ar1      ma1     ma2
      0.5867  -0.0739  0.2721
s.e.  0.0285   0.0309  0.0218

sigma^2 estimated as 1.033:  log likelihood = -4270.49,  aic = 8548.98

Training set error measures:
                      ME    RMSE       MAE        MPE     MAPE      MASE
Training set 0.001126811 1.01637 0.7583642 0.04113165 2.411178 0.7871583
                     ACF1
Training set -0.003829314
## 对拟合残差进行白噪声检验
Box.test(ARMAmod$residuals,type ="Ljung-Box")

	Box-Ljung testdata:  ARMAmod$residualsX-squared = 0.043683, df = 1, p-value = 0.8344
## p-value = 0.8344,说明是白噪声 信息提取完成,模型残差检验通过
## 可视化模型未来的预测值par(family = "STKaiti")plot(forecast(ARMAmod,h=500))
Warning message in title(main = main, xlab = xlab, ylab = ylab, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(1, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"Warning message in axis(2, ...):"Windows字体数据库里没有这样的字体系列"

在这里插入图片描述

效果不好,体现不出季节性,故不选取推荐的模型,采取季节性ARIMA模型

季节ARIMA模型(划分测试集训练集)

## 可视化序列
autoplot(ARMAdata)+ggtitle("电力负荷趋势")

在这里插入图片描述

length(ARMAdata)

2976

## 将数据即切分位两个部分,一部分用于训练模型,一部分用于查看预测效果
AirPas_train <- ARMAdata[1:2400]
AirPas_test <- ARMAdata[2401:2976]
adf.test(AirPas_train)
	Augmented Dickey-Fuller Test

data:  AirPas_train
Dickey-Fuller = -9.0554, Lag order = 13, p-value = 0.01
alternative hypothesis: stationary
## p-value = 0.01,说明数据是平稳的
## 分析序列的自相关系数和偏自相关系数分析参数p和q
p1 <- autoplot(acf(AirPas_train,lag.max = 400,plot = F))+
  ggtitle("序列自相关图")
p2 <- autoplot(pacf(AirPas_train,lag.max = 40,plot = F))+
  ggtitle("序列偏自相关图")
gridExtra::grid.arrange(p1,p2,nrow=2)

在这里插入图片描述

## 从自相关图和偏自相关图可以很明显的发现数据可能具有周期性,## 不能很好的确定参数p和q的取值,根据图可知,序列可能具有年周期性,周期为96## 使用auto.arima()函数确定模型的参数auto.arima(AirPas_train)#仅供参考,最后没用推荐的模型
Series: AirPas_train ARIMA(1,1,3) Coefficients:         ar1      ma1     ma2      ma3      0.6696  -0.1713  0.2363  -0.0821s.e.  0.0507   0.0561  0.0296   0.0378sigma^2 estimated as 0.9471:  log likelihood=-3337.17AIC=6684.35   AICc=6684.37   BIC=6713.26
#选取ARIMA(1,1,3)(0,1,0)[96] 模型ARIMA <- arima(AirPas_train, c(1, 1, 3),              seasonal = list(order = c(0, 1, 0),period =96))summary(ARIMA)
Call:arima(x = AirPas_train, order = c(1, 1, 3), seasonal = list(order = c(0, 1,     0), period = 96))Coefficients:         ar1      ma1      ma2      ma3      -0.350  -0.0117  -0.0333  -0.0587s.e.   0.158   0.1571   0.0608   0.0267sigma^2 estimated as 0.518:  log likelihood = -2510.54,  aic = 5031.07Training set error measures:                       ME      RMSE       MAE         MPE     MAPE      MASETraining set -0.001661054 0.7050728 0.5206022 -0.01890399 1.760693 0.5634299                     ACF1Training set -0.001149915
Box.test(ARIMA$residuals,type ="Ljung-Box")
	Box-Ljung testdata:  ARIMA$residualsX-squared = 0.00054543, df = 1, p-value = 0.9814
## p-value = 0.9814,此时,模型的残差已经是白噪声数据,数据中的信息已经充分的提取出来了
## 可视化模型的预测值和这是值之间的差距
par(family = "STKaiti")
plot(forecast(ARIMA,h=576),shadecols="oldstyle")
points(AirPas_train,col = "red")
lines(AirPas_train,col = "red")
#输出未来预测值,与测试集相比较,可得预测精度情况。
forecast(ARIMA,h=576)
     Point Forecast        Lo 80     Hi 80       Lo 95     Hi 95
2401       26.53587  25.61347540  27.45826  25.1251900  27.94655
2402       26.68160  25.58732655  27.77588  25.0080522  28.35515
2403       25.93017  24.64455145  27.21578  23.9639871  27.89635
2404       24.79712  23.38237500  26.21187  22.6334537  26.96079

2972       36.23935 -20.60310520  93.08181 -50.6936851 123.17239
2973       34.63735 -22.32372708  91.59843 -52.4771016 121.75181
2974       32.88335 -24.19610245  89.96281 -54.4121411 120.17885
2975       31.09935 -26.09823282  88.29694 -56.3768060 118.57551
2976       30.55535 -26.76011973  87.87083 -57.1010984 118.21181
#将预测结果转换为dataframe格式,便于提取fore<-as.data.frame(forecast(ARIMA,h=576))
#修改列名colnames(fore)<-c('fore','L80','H80','L95','H95')
#对测试集进行验证#测试集是最后6天的数据,训练集是前25天数据
library(e1071)library(caret)library(Metrics)library(readr)test_mape <- mape(fore$fore,AirPas_test)sprintf("测试集上的绝对值误差: %f",test_mape)
Warning message:"package 'e1071' was built under R version 4.0.4"Warning message:"package 'caret' was built under R version 4.0.4"Loading required package: latticeWarning message:"package 'Metrics' was built under R version 4.0.4"Attaching package: 'Metrics'

The following objects are masked from 'package:caret':    precision, recall

The following object is masked from 'package:forecast':

    accuracy

Warning message:
"package 'readr' was built under R version 4.0.4"

‘测试集上的绝对值误差: 0.046793’

测试集误差为4.67%,模型效果良好,故可选取该模型进行预测

#再预测未来一天,即4/1的情况如下(1天有96步)
forecast(ARIMA,h=672)
     Point Forecast        Lo 80     Hi 80       Lo 95     Hi 95
2401       26.53587  25.61347540  27.45826  25.1251900  27.94655
2402       26.68160  25.58732655  27.77588  25.0080522  28.35515
2403       25.93017  24.64455145  27.21578  23.9639871  27.89635
2404       24.79712  23.38237500  26.21187  22.6334537  26.96079

3069       34.94508 -35.74324936 105.63341 -73.1633900 143.05355
3070       33.19108 -37.62709810 104.00926 -75.1159765 141.49813
3071       31.40708 -39.54070920 102.35487 -77.0981996 139.91236
3072       30.86308 -40.21408394 101.94024 -77.8400612 139.56622
### 将预测结果转换为dataframe格式,便于提取
fore<-as.data.frame(forecast(ARIMA,h=672))
#修改列名
colnames(fore)<-c('fore','L80','H80','L95','H95')
#提取出最后的4/1的数据
data4_1<-fore[577:672,]
data4_1
<tr><th scope=row>3066</th><td>39.91908</td><td>-30.37826</td><td>110.2164</td><td>-67.59143</td><td>147.4296</td></tr>
<tr><th scope=row>3067</th><td>38.46808</td><td>-31.95983</td><td>108.8960</td><td>-69.24212</td><td>146.1783</td></tr>
<tr><th scope=row>3068</th><td>36.54708</td><td>-34.01116</td><td>107.1053</td><td>-71.36244</td><td>144.4566</td></tr>
<tr><th scope=row>3069</th><td>34.94508</td><td>-35.74325</td><td>105.6334</td><td>-73.16339</td><td>143.0535</td></tr>
<tr><th scope=row>3070</th><td>33.19108</td><td>-37.62710</td><td>104.0093</td><td>-75.11598</td><td>141.4981</td></tr>
<tr><th scope=row>3071</th><td>31.40708</td><td>-39.54071</td><td>102.3549</td><td>-77.09820</td><td>139.9124</td></tr>
<tr><th scope=row>3072</th><td>30.86308</td><td>-40.21408</td><td>101.9402</td><td>-77.84006</td><td>139.5662</td></tr>
A data.frame: 96 × 5
foreL80H80L95H95
<dbl><dbl><dbl><dbl><dbl>
297728.38222-29.1172785.88172-59.55567116.3201
297828.52796-29.1293586.18526-59.65128116.7072

聚类分析部分

指标数据在EXCEL中计算可得:

#导入数据
library(readxl)
dataclus<-read_excel("电力.xlsx",sheet=3)
#指标用EXCEL处理得到
dataclus<-as.data.frame(dataclus)rownames(dataclus)<-dataclus$时间
head(dataclus)
A data.frame: 6 × 8
时间PAVEPMINPMAXK1K2K3TOTAL
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
东城站10kV广源线F10有功值东城站10kV广源线F10有功值 1.29675000.0005.1300.25277781.0000000188.06673859.128
东城站10kV工业园甲线F09有功值东城站10kV工业园甲线F09有功值1.43964680.3043.0320.47481760.8997361353.26434284.389
东城站10kV两报线F08有功值东城站10kV两报线F08有功值 1.48521270.6852.7830.53367330.7538627397.05294419.993
东城站10kV中惠甲线F07有功值东城站10kV中惠甲线F07有功值 1.48847280.5412.7190.54743390.8010298407.29084429.695
东城站10kV奕垌线F06有功值东城站10kV奕垌线F06有功值 0.94720830.1442.3260.40722630.9380911302.97642818.892
东城站10kV东城线F05有功值东城站10kV东城线F05有功值 1.46191060.6392.5800.56663200.7523256421.57424350.646
cludata<-dataclus[,c(5:7)]
library(RSNNS)## 数据max-min归一化到0-1之间cludata[,1:3] <- normalizeData(cludata[,1:3],"0_1")
Warning message:"package 'RSNNS' was built under R version 4.0.5"Loading required package: Rcpp

## 计算组内平方和  组间平方和
tot_withinss <- vector()
betweenss <- vector()
for(ii in 1:8){
  k1 <- kmeans(cludata[,c(1:3)],ii)
  tot_withinss[ii] <- k1$tot.withinss
  betweenss[ii] <- k1$betweenss
}

kmeanvalue <- data.frame(kk = 1:8,
                         tot_withinss = tot_withinss,
                         betweenss = betweenss)
library(ggplot2)
library(gridExtra)
library(ggdendro)
library(cluster)
library(ggfortify)
p1 <- ggplot(kmeanvalue,aes(x = kk,y = tot_withinss))+
  theme_bw()+
  geom_point() + geom_line() +labs(y = "value") +
  ggtitle("Total within-cluster sum of squares")+
  theme(plot.title = element_text(hjust = 0.5))+
  scale_x_continuous("kmean 聚类个数",kmeanvalue$kk)

p2 <- ggplot(kmeanvalue,aes(x = kk,y = betweenss))+
  theme_bw()+
  geom_point() +geom_line() +labs(y = "value") +
  ggtitle("The between-cluster sum of squares") +
  theme(plot.title = element_text(hjust = 0.5))+
  scale_x_continuous("kmean 聚类个数",kmeanvalue$kk)

grid.arrange(p1,p2,nrow=2)
Warning message:"package 'ggplot2' was built under R version 4.0.4"Warning message:"package 'gridExtra' was built under R version 4.0.4"Warning message:"package 'ggdendro' was built under R version 4.0.4"Warning message:"package 'ggfortify' was built under R version 4.0.4"

在这里插入图片描述

set.seed(245)k3 <- kmeans(cludata[,c(1:3)],3)summary(k3)
             Length Class  Mode   cluster      30     -none- numericcenters       9     -none- numerictotss         1     -none- numericwithinss      3     -none- numerictot.withinss  1     -none- numericbetweenss     1     -none- numericsize          3     -none- numericiter          1     -none- numericifault        1     -none- numeric
## 对聚类结果可视化clusplot(cludata[,c(1:3)],k3$cluster,main = "kmean cluster number=3")

在这里插入图片描述

## 可视化轮廓图,表示聚类效果sis1 <- silhouette(k3$cluster,dist(cludata[,c(1:3)],method = "euclidean"))plot(sis1,main = " kmean silhouette",     col = c("red", "green", "blue"))

在这里插入图片描述

#将标签写入
cludata$bzcluster<-k3$cluster
#标准化数据版本
cludata
A data.frame: 30 × 4
K1K2K3bzcluster
<dbl><dbl><dbl><int>
东城站10kV广源线F10有功值0.39868481.00000000.39868482
东城站10kV工业园甲线F09有功值0.74888920.89973610.74888921
东城站10kV两报线F08有功值0.84171720.75386270.84171721
东城站10kV中惠甲线F07有功值0.86342070.80102980.86342071
东城站10kV奕垌线F06有功值0.64228320.93809110.64228322
东城站10kV东城线F05有功值0.89370030.75232560.89370031
东城站10kV碧桂园甲线F04有功值0.92823650.67839610.92823651
东城站10kV县府线F03有功值0.88078230.72626390.88078231
东城站10kV工业园乙线F11有功值0.74966900.94852190.74966901
东城站10kV工业南线F12有功值0.63549800.93773280.63549802
东城站10kV喜之郎甲线F13有功值0.81470300.96196630.81470301
东城站10kV喜之郎乙线F14有功值1.00000000.97376541.00000001
东城站10kV丹载线F15有功值0.00000000.00000000.00000003
东城站10kV永民线F16有功值0.61666400.89581050.61666402
东城站10kV兴中线F17有功值0.73620250.84962810.73620251
东城站10KV龙日线F18有功值0.51425060.85128810.51425062
东城站10kV碧桂园乙线F19有功值0.98507710.66299020.98507711
东城站10kV石仑线F20有功值0.81100760.80842200.81100761
东城站10KV东泰线F32有功值0.81362370.76854600.81362371
东城站10kV环山线F31有功值0.79801730.86757370.79801731
东城站10kV东供线F21有功值0.56903381.00000000.56903382
东城站10kV中惠乙线F22有功值0.89145990.68406400.89145991
东城站10kV佰利线F30有功值0.88437350.73260070.88437351
东城站10kV东轩线F29有功值0.86333160.72840100.86333161
东城站10kV大道线F28有功值0.90830811.00000000.90830811
东城站10kV华科乙线F27有功值0.51403821.00000000.51403822
东城站10kV华科甲线F26有功值0.33543611.00000000.33543612
东城站10kV金桂线F25有功值0.78860290.78969070.78860291
东城站10kV福兴线F24有功值0.68947321.00000000.68947322
东城站10kV龙塘线F23有功值0.00000000.00000000.00000003
aggregate(cludata[,c(1:3)],list(cludata$bzcluster),mean)
A data.frame: 3 × 4
Group.1K1K2K3
<int><dbl><dbl><dbl>
10.85269070.80988340.8526907
20.54615130.95810250.5461513
30.00000000.00000000.0000000
#将标签写入(原始数据版本)dataclus$bzcluster<-k3$cluster
dataclus
<tr><th scope=row>东城站10kV碧桂园甲线F04有功值</th><td>东城站10kV碧桂园甲线F04有功值</td><td>0.7191825</td><td>0.393</td><td>1.222</td><td>0.5885290</td><td>0.6783961</td><td>437.8656</td><td>2140.287</td><td>1</td></tr>
<tr><th scope=row>东城站10kV县府线F03有功值</th><td>东城站10kV县府线F03有功值    </td><td>1.8115847</td><td>0.888</td><td>3.244</td><td>0.5584416</td><td>0.7262639</td><td>415.4806</td><td>5391.276</td><td>1</td></tr>
<tr><th scope=row>东城站10kV工业园乙线F11有功值</th><td>东城站10kV工业园乙线F11有功值</td><td>0.9325622</td><td>0.101</td><td>1.962</td><td>0.4753120</td><td>0.9485219</td><td>353.6321</td><td>2775.305</td><td>1</td></tr>
<tr><th scope=row>东城站10kV工业南线F12有功值</th><td>东城站10kV工业南线F12有功值  </td><td>2.2712839</td><td>0.351</td><td>5.637</td><td>0.4029242</td><td>0.9377328</td><td>299.7756</td><td>6759.341</td><td>2</td></tr>
<tr><th scope=row>东城站10kV喜之郎甲线F13有功值</th><td>东城站10kV喜之郎甲线F13有功值</td><td>1.4396122</td><td>0.106</td><td>2.787</td><td>0.5165455</td><td>0.9619663</td><td>384.3098</td><td>4284.286</td><td>1</td></tr>

<tr><th scope=row>东城站10kV福兴线F24有功值</th><td>东城站10kV福兴线F24有功值    </td><td>1.3485958</td><td>0.000</td><td>3.085</td><td>0.4371461</td><td>1.0000000</td><td>325.2367</td><td>4013.421</td><td>2</td></tr>
<tr><th scope=row>东城站10kV龙塘线F23有功值</th><td>东城站10kV龙塘线F23有功值    </td><td>0.0000000</td><td>0.000</td><td>0.000</td><td>0.0000000</td><td>0.0000000</td><td>  0.0000</td><td>   0.000</td><td>3</td></tr>
A data.frame: 30 × 9
时间PAVEPMINPMAXK1K2K3TOTALbzcluster
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><int>
东城站10kV广源线F10有功值东城站10kV广源线F10有功值 1.29675000.0005.1300.25277781.0000000188.06673859.1282
东城站10kV工业园甲线F09有功值东城站10kV工业园甲线F09有功值1.43964680.3043.0320.47481760.8997361353.26434284.3891
东城站10kV两报线F08有功值东城站10kV两报线F08有功值 1.48521270.6852.7830.53367330.7538627397.05294419.9931
#各类比分类统计平均值,得到不同类别之间的差异
aggregate(dataclus[,c(5:8)],list(dataclus$bzcluster),mean)
A data.frame: 3 × 5
Group.1K1K2K3TOTAL
<int><dbl><dbl><dbl><dbl>
10.54063070.8098834402.22933361.270
20.34627590.9581025257.62923786.549
30.00000000.0000000 0.0000 0.000
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值