我已经阅读并成功使用?connectionsR但我真的不明白它们是什么.
我知道我可以下载文件,读取和写入压缩文件,...(这是我理解使用连接的结果(打开,做东西,关闭),但我真的不明白他们实际做了什么,为什么你必须打开和关闭它们等等).
我希望这也能帮助我理解如何更有效地使用它们(主要是理解正在发生的事情的机制,以便在有些事情不能正常工作时我能有效地进行调试).
有没有办法在每一步输出管道的结果而不手动完成?(例如,不选择和仅运行选定的块)
我经常发现自己逐行运行管道以记住它正在做什么或何时开发一些分析.
例如:
library(dplyr)
mtcars %>%
group_by(cyl) %>%
sample_frac(0.1) %>%
summarise(res = mean(mpg))
# Source: local data frame [3 x 2]
#
# cyl res
# 1 4 33.9
# 2 6 18.1
# 3 8 18.7
Run Code Online (Sandbox Code Playgroud)
我要选择并运行:
mtcars %>% group_by(cyl)
Run Code Online (Sandbox Code Playgroud)
然后...
mtcars %>% group_by(cyl) %>% sample_frac(0.1)
Run Code Online (Sandbox Code Playgroud)
等等...
但选择和CMD/CTRL+ ENTER会RStudio留下更有效的方法.
这可以在代码中完成吗?
是否有这需要一个管道和运行/通过显示在控制台中的每一步输出线消化它线功能,您继续通过按如同进入demos(...)或examples(...)包装指南
我有一个清单:
ls <- list(c("a", "b", "c"), c("1", "2", "3"), c("foo", "bar", "baz"))
ls
#> [[1]]
#> [1] "a" "b" "c"
#> [[2]]
#> [1] "1" "2" "3"
#> [[3]]
#> [1] "foo" "bar" "baz"
Run Code Online (Sandbox Code Playgroud)
我希望"转置"给予:
resulting_ls
#> [[1]]
#> [1] "a" "1" "foo"
#> [[2]]
#> [1] "b" "2" "bar"
#> [[3]]
#> [1] "c" "3" "baz"
Run Code Online (Sandbox Code Playgroud)
我可以用:
mat <- matrix(unlist(ls), ncol = 3, byrow = TRUE)
resulting_ls <- lapply(1:ncol(mat), function(i) mat[, i])
Run Code Online (Sandbox Code Playgroud)
但是根据我的真实数据,它非常慢......(我需要为许多列表执行此操作,每个列表都比上面的示例大得多)
对于大型列表length(ls)和/或执行此操作的最快方法是什么length(ls[[i]])? …