我无法弄清楚group_by_()函数的基于下划线的函数是什么.
来自group_by帮助:
by_cyl <- group_by(mtcars, cyl)
summarise(by_cyl, mean(disp), mean(hp))
Run Code Online (Sandbox Code Playgroud)
产生预期:
Source: local data frame [3 x 3]
cyl mean(disp) mean(hp)
1 4 105.1364 82.63636
2 6 183.3143 122.28571
3 8 353.1000 209.21429
Run Code Online (Sandbox Code Playgroud)
但是这个:
by_cyl <- group_by_(mtcars, cyl)
Run Code Online (Sandbox Code Playgroud)
产生错误:
"Error in as.lazy_dots(list(...)) : object 'cyl' not found"
Run Code Online (Sandbox Code Playgroud)
所以我的问题是下划线版本的作用是什么?而且,在什么情况下我想要使用它,而不是"常规"?
谢谢
如何仅使用purrr包从嵌套列表中提取元素?在这种情况下,我希望在分割data.frame后得到一个截距矢量.我已经使用lapply()完成了我需要的东西,但我想只使用函数purrr包.
library(purrr)
mtcars %>%
split(.$cyl) %>%
map( ~lm(mpg ~ wt, data = .)) %>% # shorthand NOTE: ~ lm
lapply(function(x) x[[1]] [1]) %>% # extract intercepts <==is there a purrr function for this line?
as_vector() # convert to vector
Run Code Online (Sandbox Code Playgroud)
我试过map()和at_depth()但似乎没有什么对我有用.
使用dplyr等软件包时,为什么在RStudio的LHS边距中出现黄色的三角警告?当我开始使用当前版本的RStudio(1.0.136)时,没有任何警告。然后,我开始编码,输入错误的内容,然后出现一堆黄色三角形。但是,如果我重新启动RStudio,我将一无所有。
有没有办法抑制和/或防止这种情况?
我正在尝试创建两个图形:整个数据集之一,以及按"站点"分组因子分割时的平均图形.
这是源数据:
site.data <- structure(list(site = structure(c(1L, 1L, 1L, 1L,1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L),
.Label = c("ALBEN", "ALDER", "AMERI"), class = "factor"),
year = c(5L, 10L, 20L, 50L, 100L, 200L, 500L, 5L, 10L, 20L, 50L, 100L, 200L, 500L, 5L, 10L, 20L, 50L, 100L, 200L),
peak = c(101529.6, 117483.4, 132960.9, 153251.2, 168647.8, 184153.6, 204866.5, 6561.3, 7897.1, 9208.1, 10949.3,12287.6, 13650.2, 15493.6, 43656.5, 51475.3, 58854.4, 68233.3, 75135.9, 81908.3)),
.Names = c("site", "year","peak"), …Run Code Online (Sandbox Code Playgroud) 我有一个字段名称的字符向量,我想用dplyr选择.我正在使用select_()的下划线版本.
select(mtcars, mpg) # works OK
select(mtcars, mpg, disp, am) # works OK for multiple fields
Run Code Online (Sandbox Code Playgroud)
现在让我们使用下划线版本
fie <- c("mpg")
select_(mtcars, fie) # works OK for one
fie <- c("mpg", "disp", "am")
select_(mtcars, fie) # problem: only returns one column
select_(mtcars, ~fie) # problem: doesn't work
Run Code Online (Sandbox Code Playgroud)
我很困惑如何让这个工作.有什么建议?谢谢
当我从帮助页面复制并粘贴示例时,这可以正常工作:
dplyr::frame_data(
~Club, ~Compensation,
"a", 1,
"b", 2
)
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试输入自己的数据时,我收到错误"列不是全长相同".
dplyr::frame_data(
~A, ~B,
"NY", "ABc"
)
Run Code Online (Sandbox Code Playgroud)
我到底做错了什么?这是另一个包含2行数据的示例:
soccer <- dplyr::frame_data(
~A, ~B, ~C, ~D, ~E, ~E2,
"NY", "ABc", "Anatole", "BB", 50000, 50000,
"NY", "CDe", "Saad", "D", 60000, 73750
)
Run Code Online (Sandbox Code Playgroud) 我正在尝试转换日期向量,这是可重复性最小的示例.
dates <- c("04-Nov-2013", "20-Jan-2014", "28-Jan-2014", "24-Apr-2014")
library(anytime)
anydate(dates)
Run Code Online (Sandbox Code Playgroud)
我的输出是:
[1] "2013-11-04" NA NA "2014-04-24"
Run Code Online (Sandbox Code Playgroud)
这对于中间两个元素是不正确的.这是一个错误吗?我的任何时候包的版本是0.1.1
sessionInfo()按要求:
sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: i386-w64-mingw32/i386 (32-bit)
Running under: Windows 7 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] anytime_0.1.1 lazyeval_0.2.0 magrittr_1.5 lubridate_1.6.0
[5] readr_1.0.0 stringr_1.1.0 dplyr_0.5.0 tidyr_0.6.0
loaded via a namespace (and not attached): …Run Code Online (Sandbox Code Playgroud)