我有一個R中的tibble,每個月都有11個觀察值,除了6月有0個。 我的資料框架(tibble)看起來是這樣的:
我的資料框架(tibble)看起來是這樣的。
library(tidyverse)
A = c(1。 2。 3, 4, 5, 7,8, 9, 10,11,12)
B = rnorm(11, 0,1)
資料 = tibble(A,B); Data
但是我想添加這個時間序列的6月份的0個觀察值。 類似于:
d = c(6。 0)。 d
newdata = rbind(Data,d)
order(newdata$A)
但是出現了12(December)。有什么幫助嗎?
uj5u.com熱心網友回復:
兩種方法:
(1) 我們可以使用add_row來實作。然而,d必須被命名,我們需要用三連擊add_row拼接到!!!運算子。然后我們可以排列資料,使月份從1到12進行排序。當然,你可以直接指定add_row,就像@Chris回答的那樣,而不需要一個外部矢量。
library(dplyr)
A = c(1。 2。 3, 4, 5, 7,8, 9, 10,11,12)
B = rnorm(11, 0,1)
資料 = tibble(A,B)
d = c(A = 6。 B = 0)
newdata <- Data %>%
add_row(!! d) %%>%
arrange(A)
# check
串列
#> # A tibble: 12 x 2
#> A B
#> <dbl> <dbl>/span>
#> 1 1 1.22
#> 2 2 0.0729
#> 3 3 0.597
#> 4 4 1.26
#> 5 5 0.928
#> 6 6 0
#> 7 7 -1.08
#> 8 8 0.704
#> 9 9 -0.119
#> 10 10 -0.462
#> 11 11 -0.00388[/span
#> 12 12 1.56
order(newdata$A)
#> [1] 1 2 3 4 5 6 7 8 9 10 11 12
(2)我們可以使用tidyr::complete,正如@Ronak在評論中建議的那樣,盡管我們使用的full_seq規格略有不同:
library(tidyr)
資料%>%
complete(A = full_seq(A。 1)。 填充= list(B = = 0))
#> # A tibble: 12 x 2
#> A B
#> <dbl> <dbl>/span>
#> 1 1 -0.258
#> 2 2 -1.18
#> 3 3 -0.165
#> 4 4 0.775
#> 5 5 0.926[/span
#> 6 6 0
#> 7 7 0.343
#> 8 8 1.10
#> 9 9 0.359
#> 10 10 0.934
#> 11 11 0.444
#> 12 12 0.184
創建于2021-09-21,由reprex包(v2.0.1)
uj5u.com熱心網友回復:
你可以在add_row中定義額外的行:
library(dplyr)
資料%>%
add_row(A = 6。 B = 0) %> %
安排(A)
# A tibble: 12 x 2
A B
<dbl> <dbl>
1 1 -0.547
2 2 -0.564
3 3 -0.890
4 4 -0.477
5 5 -0.998[/span
6 6 0
7 7 -0.776
8 8 0.0645[/span
9 9 0.959[/span
10 10 -0.110
11 11 -0.511
12 12 -0.911
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/332233.html
標籤:
