purrr::map中第一个波浪线的含义是什么
我正在看这个使用purrr::map中第一个波浪线的含义是什么,r,purrr,tilde,R,Purrr,Tilde,我正在看这个使用map。这是: mtcars %>% split(.$cyl) %>% # from base R map(~ lm(mpg ~ wt, data = .)) 映射(~lm…)中第一个波浪形符号的含义是什么?也就是说,R如何解释第一个波浪形符号?(我知道第二个波浪形符号表示一个函数…)。另一种提问方式是,为什么下面的方法不起作用 mtcars %>% split(.$cyl) %>% # from base R map(lm(mpg ~
map
。这是:
mtcars %>%
split(.$cyl) %>% # from base R
map(~ lm(mpg ~ wt, data = .))
映射(~lm…
)中第一个波浪形符号的含义是什么?也就是说,R如何解释第一个波浪形符号?(我知道第二个波浪形符号表示一个函数…)。另一种提问方式是,为什么下面的方法不起作用
mtcars %>%
split(.$cyl) %>% # from base R
map(lm(mpg ~ wt, data = .))
根据,map
需要一个函数,但它也接受公式、字符向量、数字向量或列表,后者被转换为函数
R中的~
运算符创建公式。因此~lm(mpg~wt,data=)
是一个公式。公式在R中很有用,因为它们阻止立即计算符号。例如,您可以定义
x <- ~f(a+b)
您可以看到
如何成为传递给该函数的第一个参数。您是否阅读了~?请尝试帮助(“~”
)。它描述了
通常用于什么。也就是说,指示公式。映射
是否只接受公式?为什么lm有意义(mpg~wt,…
不起作用。谢谢!
myfun <- as_mapper(~lm(mpg ~ wt, data = .))
myfun(mtcars)
# Call:
# lm(formula = mpg ~ wt, data = .)
#
# Coefficients:
# (Intercept) wt
# 37.285 -5.344
myfun
# <lambda>
# function (..., .x = ..1, .y = ..2, . = ..1)
# lm(mpg ~ wt, data = .)
# attr(,"class")
# [1] "rlang_lambda_function"