Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在等长列表中拆分数据帧_R_Dataframe_Split_Balance - Fatal编程技术网

R 如何在等长列表中拆分数据帧

R 如何在等长列表中拆分数据帧,r,dataframe,split,balance,R,Dataframe,Split,Balance,我正在使用一个大数据库,我正在尝试将一个平衡面板分割成平衡面板,以便执行plm循环回归 我一直在尝试分割我的数据帧bb3(平衡分组),但我无法获得我想要的,这是我驱动器中作为.RData的样本数据bb3 第一次尝试 在此之后,我尝试使用split.default: n<-6 f<-gl(n,nrow(bb3) / n ) B<-split.default(bb3, f) TL:DR我想生成一个分为6个块的列表,每个块都有102个clv和连续的date。即使它们不平衡,如果它

我正在使用一个大数据库,我正在尝试将一个平衡面板分割成平衡面板,以便执行
plm
循环回归

我一直在尝试分割我的数据帧
bb3
(平衡分组),但我无法获得我想要的,这是我驱动器中作为.RData的样本数据
bb3

第一次尝试

在此之后,我尝试使用
split.default

n<-6
f<-gl(n,nrow(bb3) / n )
B<-split.default(bb3, f)
TL:DR我想生成一个分为6个块的列表,每个块都有102个
clv
和连续的
date
。即使它们不平衡,如果它们是连续的,我也可以用
make.pbalanced
来平衡它们。这将是我理想的解决方案

第二次尝试

我生成了
索引
以识别每个
CLV
的每个
日期
索引
已在
bb3
中生成,但为了便于练习,我正在解释我是如何生成的)

因此,我仍然无法平衡面板,也无法将其与
plm

我如何将它分为6个连续的日期?

你可以这样做

B012345
#> 9367 9367 9367 9367 9367 9367 
并且每个都包含大致相同数量的所有
CLV

sapply(B,函数(x)表(x$clvs))
#>            1  2  3  4  5  6
#>07ACU-115 92 91
#>07APD-230 92 92
#>07BJO-69 92 92
#>07CAE-69 92
#>07CES-69 92
#>07CHQ-230 91 92
#>07CIP-115 92 91
#>07CME-115 92 92
#>07CNA-69 92 92
#>07CNT-230 92 92
#>07CNZ-161 92 91 92
#>07COE-115 91 92
#>07CPC-161 92 91
#>07CPD-230 92 92
#>07CPT-230 92 92
#>07CPU-161 92 91 92
#>07CRO-161 92 91 92
#>07CSC-230 91 92
#>07CTY-161 92 91
#>07CTY-230 92 92
#>07DRA-69 92 92
#>07EDA-115 92 91 92
#>07END-69 92 92
#>07ENT-115 91 92
#>07EPC-115 92 91
#>07FCO-69 92
#>07FEV-16192
#>07FLO-69 92
#>07FMO-115 92
#>07FOR-69 91 92 92
#>07FTA-69 92 91
#>07GER-69 92 92 91 92
#>07GLL-115 92 92
#>07GOR-161 92 91 92
#>07HGO-161 92 91 92
#>07HMO-69 91 92
#>07HUN-69 92 91
#>07INA-69 92 92 92
#>07IOP-69 92 92
#>07JAT-115 92 92
#>07JOV-230 92 92
#>07JOY-115 91 92
#>07KCH-161 92 91
#>07LGO-69 92 92
#>07LMS-69 92
#>07LOS-115 92 91 92
#>07MAB-69 92
#>07MEP-230 91 92
#>07MEP-69 92 91
#>07MND-115 92 92
#>07MOE-161 92 92
#>07MSN-115 92 92
#>07MXC-69 92
#>07MXI-161 91 92
#>07MXI-230 92 91
#>07NEL-69 92 92 92
#>07NZI-161 92 92
#>07ONG-69 92 91 92
#>07OZA-230 92 92
#>07PAF-69 91 92
#>07PAP-69 92 91
#>07PID-161 92 92
#>07PID-230 92 92 92
#>07PJZ-115 92 92
#>07PJZ-230 92 92
#>07PKD-161 91 92
#>07PNM-115 92 91
#>07PNU-115 92 92
#>07POP-115 92 91 92
#>07RII-69 92 92
#>07RIN-161 92 91 92
#>07RSI-69 91 92
#>07RUB-69 92 91
#>07RUM-69 92 92 91 92
#>07RZC-16192
#>07SAF-115 92 92
#>07SAZ-115 92 92
#>07SED-69 91 92
#>07SHA-115 92 91
#>07SIO-69 92 92
#>07SIS-16192 92
#>07SMN-115 92 92
#>07SQN-115 92 92
#>07SRY-230 91 92
#>07STB-230 92 91
#>07SVE-115 92 92
#>07TCD-69 92 92
#>07TCT-69 92
#>07TEE-69 92 91 92
#>07TEK-230 91 92
#>07TJD-69 92 91
#>07TJI-69 92 92
#>07TOY-230 92 91 92
#>07TRI-115 92 91 92
#>07UND-69 92 91 92
#>07VAS-69 91 92
#>07VIG-69 92 91
#>07VLP-69 92
#>07VPA-230 92 91 92
#>07VPM-69 92
#>07WIS-230 92 92
#>07XCO-230 91 92
每个包含每个
datetime
的17个实例:

sapply(B,函数(x)表(如.character(x$datetime)))
#>                      1  2  3  4  5  6
#> 2017-02-28 01:00:00 17 17 17 17 17 17
#> 2017-02-28 02:00:00 17 17 17 17 17 17
#> 2017-02-28 03:00:00 17 17 17 17 17 17
#> 2017-02-28 04:00:00 17 17 17 17 17 17
#> 2017-02-28 05:00:00 17 17 17 17 17 17
#> 2017-02-28 06:00:00 17 17 17 17 17 17
#> 2017-02-28 07:00:00 17 17 17 17 17 17
#> 2017-02-28 08:00:00 17 17 17 17 17 17
#> 2017-02-28 09:00:00 17 17 17 17 17 17
#> 2017-02-28 10:00:00 17 17 17 17 17 17
#> 2017-02-28 11:00:00 17 17 17 17 17 17
#> 2017-02-28 12:00:00 17 17 17 17 17 17
#> 2017-02-28 13:00:00 17 17 17 17 17 17
#> 2017-02-28 14:00:00 17 17 17 17 17 17
#> 2017-02-28 15:00:00 17 17 17 17 17 17
#> 2017-02-28 16:00:00 17 17 17 17 17 17
#> 2017-02-28 17:00:00 17 17 17 17 17 17
#> 2017-02-28 18:00:00 17 17 17 17 17 17
#> 2017-02-28 19:00:00 17 17 17 17 17 17
#> 2017-02-28 20:00:00 17 17 17 17 17 17
#> 2017-02-28 21:00:00 17 17 17 17 17 17
#> 2017-02-28 22:00:00 17 17 17 17 17 17
#> 2017-02-28 23:00:00 17 17 17 17 17 17
#> 2017-03-01 00:00:00 17 17 17 17 17 17
#> 2017-03-01 01:00:00 17 17 17 17 17 17
#> 2017-03-01 02:00:00 17 17 17 17 17 17
#> 2017-03-01 03:00:00 17 17 17 17 17 17
#> 2017-03-01 04:00:00 17 17 17 17 17 17
#> 2017-03-01 05:00:00 17 17 17 17 17 17
#>
Warning message:
In split.default(bb3, f) : data length is not a multiple of split variable
bb3<- bb3 %>% 
  group_by(clvs) %>% 
  mutate(Index = row_number())
si<-split.data.frame(bb3,bb3$Index)
B <- split(bb3, 1:6)
head(B[["6"]])
clvs  fecha hora    pml pml_ene pml_per pml_cng datetime date               
  <fct> <chr> <chr> <dbl>   <dbl>   <dbl>   <dbl> <fct>    <dttm>             
1 07AC~ 2017~ 6      389.    388.    1.07       0 2017-02~ 2017-02-28 07:00:00
2 07AC~ 2017~ 12     677.    674.    3.25       0 2017-02~ 2017-02-28 13:00:00
3 07AC~ 2017~ 18     667.    664.    3.15       0 2017-02~ 2017-02-28 19:00:00
4 07AC~ 2017~ 24     666.    664.    2.44       0 2017-03~ 2017-03-01 01:00:00
5 07AC~ 2017~ 6      664.    662.    2.05       0 2017-03~ 2017-03-01 07:00:00
6 07AC~ 2017~ 12     434.    431.    2.97       0 2017-03~ 2017-03-01 13:00:00

tail(B[["6"]])

clvs  fecha hora    pml pml_ene pml_per pml_cng datetime date               
  <fct> <chr> <chr> <dbl>   <dbl>   <dbl>   <dbl> <fct>    <dttm>             
1 07XC~ 2017~ 18     430.    443.  -13.6        0 2017-03~ 2017-03-21 19:00:00
2 07XC~ 2017~ 24     418.    426.   -8.41       0 2017-03~ 2017-03-22 01:00:00
3 07XC~ 2017~ 6      442.    444.   -2.15       0 2017-03~ 2017-03-22 07:00:00
4 07XC~ 2017~ 12     451.    464.  -12.4        0 2017-03~ 2017-03-22 13:00:00
5 07XC~ 2017~ 18     450.    461.  -11.2        0 2017-03~ 2017-03-22 19:00:00
6 07XC~ 2017~ 24     452.    467.  -15          0 2017-03~ 2017-03-23 01:00:00
library(DTK)
f<-gl.unequal(n=6,k=c(92,92,92,92,92,91))
B<-split(bb3,f)
head(B3[["1"]])
1 07AC~ 2017~ 1      686.    684.    2.19       0 2017-02~ 2017-02-28 02:00:00
2 07AC~ 2017~ 2      665.    664.    1.79       0 2017-02~ 2017-02-28 03:00:00
3 07AC~ 2017~ 3      393.    392.    1.11       0 2017-02~ 2017-02-28 04:00:00
4 07AC~ 2017~ 4      383.    381.    1.4        0 2017-02~ 2017-02-28 05:00:00
5 07AC~ 2017~ 5      383.    381.    1.41       0 2017-02~ 2017-02-28 06:00:00
6 07AC~ 2017~ 6      389.    388.    1.07       0 2017-02~ 2017-02-28 07:00:00

is.pbalanced(B[["1"]])
TRUE