purrr を使用してリスト列を配置しようとしています。しかし、おもちゃの例を作成するだけで、私は完全に混乱します。
s <- tibble(b = as.integer(runif(
n = 10, min = 0, max = 20
)))
s$e <-
map(s$b, ~ sample(seq(
as.Date('1990/01/01'), as.Date('2010/01/01'), by = "day"
), size = .))
私はこのようなことができると思いました:
s2 <- s %>% map('b') %>%
mutate(e = map(~ sample(seq(as.Date('1990/01/01'),
as.Date('2010/01/01'), by = "day"),
size = .)))
ただし、これは機能しません。ここで何が欠けていますか?
ここで、listcolumn の日付を昇順に並べ替え、最初と最後の日付を抽出したいと思います。どうすればこれをゴロゴロすることができますか?さまざまなバリエーションを試しました
s %>% map('e') %>% map_df(~arrange(.))
しかし、明らかに私はここに何かが欠けています...
私の望む出力は、データフレームの新しい list-column であり、 list-columnの未配置s
の日付がs$e
新しい list-column で昇順で配置されますs$new_arranged_dates
。
> s
# A tibble: 10 × 3
b e new_arranged_dates
<int> <list> <list>
1 15 <date [15]> <date [15]>
2 0 <date [0]> <date [0]>
3 7 <date [7]> etc
4 6 <date [6]>
5 3 <date [3]>
6 14 <date [14]>
7 15 <date [15]>
8 13 <date [13]>
9 13 <date [13]>
10 11 <date [11]>
編集 290817:
s2 <- s %>%
mutate(e = map(b,~ sample(seq(as.Date('1990/01/01'),
as.Date('2010/01/01'), by = "day"),
size = .))) %>% mutate(new_arranged_dates =map(e,~.[order(.)]))
私が欲しいものを手に入れます。ただし、理由はわかりません
s2 <- s %>%
mutate(e = map(b,~ sample(seq(as.Date('1990/01/01'),
as.Date('2010/01/01'), by = "day"),
size = .))) %>% mutate(new_arranged_dates=map(e,~arrange(.)))
結果は
Error in mutate_(.data, .dots = lazyeval::lazy_dots(...)) :
argument ".data" is missing, with no default