我想add_row()分組數據沒有使用做。add_row與group_by巢弼
library(dplyr)
library(tidyr)
library(purrr)
library(tibble)
my.data <- data.frame(
supplier = c("a","a","a","a","a","a","b","b","b","b","b","b"),
date = rep(c("2017-06-01","2017-03-01","2017-02-01","2017-01-12",
"2017-05-01","2017-04-01"), 2),
order = c(1,0,0,1,1,0,0,1,0,0,1,0)
)
用做
my.data %>%
group_by(supplier) %>%
do(add_row(.,.before=0))
解決這給
# A tibble: 14 x 3
# Groups: supplier [3]
supplier date order
<chr> <chr> <dbl>
1 <NA> <NA> NA
2 a 2017-06-01 1
3 a 2017-03-01 0
4 a 2017-02-01 0
5 a 2017-01-12 1
6 a 2017-05-01 1
7 a 2017-04-01 0
8 <NA> <NA> NA
9 b 2017-06-01 0
10 b 2017-03-01 1
11 b 2017-02-01 0
12 b 2017-01-12 0
13 b 2017-05-01 1
14 b 2017-04-01 0
嘗試巢和變異或purrr ::地圖
my.data %>%
group_by(supplier) %>%
nest() %>%
mutate(extra.row = add_row(data, .before = 0))
mutate_impl(.data,dots)中的錯誤: 評估錯誤:不支持的索引類型:NULL。
有任何建議。縮放時,速度非常慢。
你想整行是NA,甚至分組VAR(S)? – Frank
意圖是add_row的日期值是每組最短日期之前的30天。 add_row(數據,日期=(分鐘(。$日期) - 30),.before = 0) – iboboboru
好吧,加入應該這樣做,我猜。我不使用全反,所以不能作出答案。您應該澄清一下,問題中的「帶解決方案」不是解決方案(因爲供應商和日期不適用)。? – Frank