函数和数据快捷方式.x~ 库(tidyverse) #>警告:程序包“tidyverse”是在R版本3.6.3下构建的 #>警告:包“ggplot2”是在R版本3.6.3下生成的 #>警告:程序包“tidyr”是在R版本3.6.3下构建的 #>警告:包“purrr”是在R版本3.6.3下生成的 #>警告:程序包“dplyr”是在R版本3.6.3下生成的 #>警告:程序包“stringr”是在R版本3.6.3下生成的 #>警告:“forcats”软件包是在R版本3.6.3下构建的 图书馆(gapminder) #>警告:包“gapminder”是在R版本3.6.2下构建的 差距% 过滤器(大陆==“亚洲”)%>% 突变(yr1952=年份-1952) 间隙_% 按(国家)划分的组别%>% nest() gap_嵌套 #>#A tibble:33 x 2 #>#群体:国家[33] #>国家数据 #> #>1阿富汗 #>2巴林 #>3孟加拉国 #>4柬埔寨 #>5中国 中国香港6 #>7印度 #>8印度尼西亚 #>9伊朗 #>10伊拉克 #> # ... 还有23行 gap_嵌套的$data[[1]] #>#tibble:12 x 6 #>1952年欧洲大陆年度寿命试验pop gdpPercap YR #> #>1亚洲1952 28.8 842533779。0 #>2亚洲1957 30.3 9240934 821。5. #>3亚洲1962 32.0 10267083 853。10 #>4亚洲1967 34.0 11537966 836。15 #>5亚洲1972 36.1 13079460 740。20 #>6亚洲1977 38.4 14880372 786。25 #>7亚洲1982 39.9 128816 978。30 #>8亚洲1987 40.8 13867957 852。35 #>9亚洲1992 41.716317921649。40 #>10亚洲1997 41.82227415 635。45 #>11亚洲2002 42.1 25268405 727。50 #>12亚洲2007 43.8 31889923 975。55 间隙_已安装% 突变(拟合=映射(数据,~lm(lifeExp~yr1952,数据=.x))) 已安装间隙传感器 #>#A tibble:33 x 3 #>#群体:国家[33] #>国家数据拟合 #> #>1阿富汗 #>2巴林 #>3孟加拉国 #>4柬埔寨 #>5中国 中国香港6 #>7印度 #>8印度尼西亚 #>9伊朗 #>10伊拉克 #> # ... 还有23行 gap_fitted$fit[[1]] #> #>电话: #>lm(公式=lifeExp~yr1952,数据=0.x) #> #>系数: #>(截取)1952年 #> 29.9073 0.2753 间隙_已安装% 变异( intercept=map_dbl(fit,~coef(.x)[[“(intercept)”]]), 斜率=map_dbl(拟合,~coef(.x)[“yr1952”]] ) 已安装间隙传感器 #>#tibble:33 x 5 #>#群体:国家[33] #>国家数据拟合截距斜率 #> #>1阿富汗29.9 0.275 #>2巴林52.7 0.468 #>3孟加拉国36.1 0.498 #>4柬埔寨37.0 0.396 #>5中国47.20.531 香港>6,中国63.4,0.366 #>7印度39.30.505 #>8印度尼西亚36.9 0.635 #>9伊朗45.0 0.497 #>10伊拉克50.10.235 #> # ... 还有23行

函数和数据快捷方式.x~ 库(tidyverse) #>警告:程序包“tidyverse”是在R版本3.6.3下构建的 #>警告:包“ggplot2”是在R版本3.6.3下生成的 #>警告:程序包“tidyr”是在R版本3.6.3下构建的 #>警告:包“purrr”是在R版本3.6.3下生成的 #>警告:程序包“dplyr”是在R版本3.6.3下生成的 #>警告:程序包“stringr”是在R版本3.6.3下生成的 #>警告:“forcats”软件包是在R版本3.6.3下构建的 图书馆(gapminder) #>警告:包“gapminder”是在R版本3.6.2下构建的 差距% 过滤器(大陆==“亚洲”)%>% 突变(yr1952=年份-1952) 间隙_% 按(国家)划分的组别%>% nest() gap_嵌套 #>#A tibble:33 x 2 #>#群体:国家[33] #>国家数据 #> #>1阿富汗 #>2巴林 #>3孟加拉国 #>4柬埔寨 #>5中国 中国香港6 #>7印度 #>8印度尼西亚 #>9伊朗 #>10伊拉克 #> # ... 还有23行 gap_嵌套的$data[[1]] #>#tibble:12 x 6 #>1952年欧洲大陆年度寿命试验pop gdpPercap YR #> #>1亚洲1952 28.8 842533779。0 #>2亚洲1957 30.3 9240934 821。5. #>3亚洲1962 32.0 10267083 853。10 #>4亚洲1967 34.0 11537966 836。15 #>5亚洲1972 36.1 13079460 740。20 #>6亚洲1977 38.4 14880372 786。25 #>7亚洲1982 39.9 128816 978。30 #>8亚洲1987 40.8 13867957 852。35 #>9亚洲1992 41.716317921649。40 #>10亚洲1997 41.82227415 635。45 #>11亚洲2002 42.1 25268405 727。50 #>12亚洲2007 43.8 31889923 975。55 间隙_已安装% 突变(拟合=映射(数据,~lm(lifeExp~yr1952,数据=.x))) 已安装间隙传感器 #>#A tibble:33 x 3 #>#群体:国家[33] #>国家数据拟合 #> #>1阿富汗 #>2巴林 #>3孟加拉国 #>4柬埔寨 #>5中国 中国香港6 #>7印度 #>8印度尼西亚 #>9伊朗 #>10伊拉克 #> # ... 还有23行 gap_fitted$fit[[1]] #> #>电话: #>lm(公式=lifeExp~yr1952,数据=0.x) #> #>系数: #>(截取)1952年 #> 29.9073 0.2753 间隙_已安装% 变异( intercept=map_dbl(fit,~coef(.x)[[“(intercept)”]]), 斜率=map_dbl(拟合,~coef(.x)[“yr1952”]] ) 已安装间隙传感器 #>#tibble:33 x 5 #>#群体:国家[33] #>国家数据拟合截距斜率 #> #>1阿富汗29.9 0.275 #>2巴林52.7 0.468 #>3孟加拉国36.1 0.498 #>4柬埔寨37.0 0.396 #>5中国47.20.531 香港>6,中国63.4,0.366 #>7印度39.30.505 #>8印度尼西亚36.9 0.635 #>9伊朗45.0 0.497 #>10伊拉克50.10.235 #> # ... 还有23行,r,shortcut,R,Shortcut,由(v0.3.0)于2020年7月29日创建 有人能给我解释一下上面代码中使用的快捷方式,比如~,.x中的实际文本吗。有时会使用简单的“.”。是否存在用实际名称代替这些快捷方式的包。代词x是否表示映射函数中的数据参数?符号~表示您正在处理公式 在rlang包中(以及在tidyverse包中的扩展),公式可以解释为匿名函数 因此,如果你写: map(data, ~ lm(lifeExp ~ yr1952, data = .x)) 就像在写: map(data, function(x) lm(li

由(v0.3.0)于2020年7月29日创建


有人能给我解释一下上面代码中使用的快捷方式,比如~,.x中的实际文本吗。有时会使用简单的“.”。是否存在用实际名称代替这些快捷方式的包。代词x是否表示映射函数中的数据参数?

符号~表示您正在处理公式

在rlang包中(以及在tidyverse包中的扩展),公式可以解释为匿名函数

因此,如果你写:

map(data, ~ lm(lifeExp ~ yr1952, data = .x))
就像在写:

map(data, function(x) lm(lifeExp ~ yr1952, data = x))
第一种方法确实很有用,比匿名函数更具可读性

处理多个输入时,您还可以使用
.y
甚至
.1
.2

允许这种魔力的函数是
purrr::as_mapper
,它最终调用
rlang::as_函数


这回答了你的问题吗?

有时候我只会看到。在表达式中,例如在facet wrap中,我们有facet_wrap(.~drive)what函数。你能解释一下.x在
map_dbl(fit,~coef(.x)[[(Intercept)])
中的用法吗
map_dbl(fit,~coef(.x)[(Intercept)])
中的用法与我在回答中解释的完全相同。它需要替换匿名函数。我认为
ggplot2
是在这个逻辑之前创建的,所以
facet\u grid
的工作方式不同。在这种情况下,表示公式:
columns~ rows
。当您看到
时,是因为未指定列。在
facet\u wrap
中,您不能指定行和列,因此您只需在左侧省略一个点,并在右侧添加多个变量即可:
~var1+var2
如果您不介意,可以提供一个链接来理解这些符号。y,…1,…2请查看
帮助(purrr::map2)
。这些例子真的很好。在下面的视频中,我想知道sum和mean中的参数在做什么。有人能解释一下吗<代码>~总和(.>0)和~mean([描述>0])