在map嵌套的data_frame上使用时,我不明白为什么后两个版本会出错,我应该如何使用dot(.)?
library(tidyverse)
# dummy data
df <- tibble(id = rep(1:10, each = 10),
val = runif(100))
df <- nest(df, -id)
# works as expected
map(df$data, min)
df %>% .$data %>% map(., min)
# gives an error
df %>% map(.$data, min)
# Error: Don't know how to index with object of type list at level 1
df %>% map(data, min)
Run Code Online (Sandbox Code Playgroud) 我发现有些表达式只能在大括号(大括号{ })中使用,例如:
library(dplyr)
3 %>% {3 + .}
3 %>% {ifelse(. < 2, TRUE, FALSE)}
Run Code Online (Sandbox Code Playgroud)
在管道时使用花括号的原则是什么?我们何时应该使用它以及使用哪些表达式?