我只是注意到以read_csv()某种方式使用了出乎意料的随机数(至少对我而言)。相应的基本 R 函数read.csv()不会这样做。那么,read_csv()随机数有什么用呢?我查看了文档,但找不到明确的答案。随机数是否与guess_max参数有关?
library(tidyverse)
set.seed(123)
rnorm(1)
# [1] -0.5604756
set.seed(123)
dat <- read.csv("data/titanic.csv")
rnorm(1)
# [1] -0.5604756
set.seed(123)
dat <- read_csv("data/titanic.csv")
rnorm(1)
#[1] 1.239496
Run Code Online (Sandbox Code Playgroud)
编辑:
col_types并且确实有效。但我仍然想知道为什么会发生这种情况。有人有解释吗?set.seed(123)
dat <- read_csv("data/titanic.csv", col_types = c("dddccdddcdcc"))
rnorm(1)
#[1] -0.5604756
Run Code Online (Sandbox Code Playgroud)
readr版本,这里是我的会话信息。library(tidyverse)
set.seed(123)
rnorm(1)
# [1] -0.5604756
set.seed(123)
dat <- read.csv("data/titanic.csv")
rnorm(1)
# [1] -0.5604756
set.seed(123)
dat <- read_csv("data/titanic.csv")
rnorm(1)
#[1] 1.239496
Run Code Online (Sandbox Code Playgroud)
我正在运行并行计算,用于foreach同时处理大量时间序列。在这些计算中(在一个名为我的函数中,compute_slope()我做了这样的事情
lBd <- floor(TMax^delta) # lower bound\nuBd <- ceiling(m * TMax^delta) # upper bound\n \n# process is a tibble with columns `n` and `variance`\nprocess %>% \n dplyr::filter(between(n, lBd, uBd)) %>% \n lm(data = ., log(variance) ~ log(n)) %>% \n coefficients() %>% \n .[2]\nRun Code Online (Sandbox Code Playgroud)\n所以,这是非常简单的事情:使用参数TMax, delta我m在左侧和右侧截断时间序列(使用filter()),然后对截断的时间序列运行线性回归。\n出于某种奇怪的原因,大多数时候一切都很顺利,但有时(我怀疑在较长的时间序列中更有可能发生错误,即TMax较大,但这也有点不规则)我得到
\xe2\x9c\x96 Problem with `filter()` input `..1`.\n\xe2\x84\xb9 Input `..1` is `between(n, lBd, uBd)`.\n\xe2\x9c\x96 `ancestor` must be an environment"\nRun Code Online (Sandbox Code Playgroud)\n我真的不知道如何解释这个错误。我也很难复制这个“祖先”错误,但到目前为止还没有运气。例如,我尝试过 …
如何使用 dplyrif_else()函数使其输出为函数?ifelse()这样做base是微不足道的,但是if_else()出了问题。这是有意的行为还是我只是无法正确地做到这一点?
x <- 2
ifelse(x == 2, min, max)
#> function (..., na.rm = FALSE) .Primitive("min")
dplyr::if_else(x == 2, min, max)
#> Error in true[rep(NA_integer_, length(condition))]: object of type 'builtin' is not subsettable
Run Code Online (Sandbox Code Playgroud)
由reprex 包于 2021 年 12 月 4 日创建(v2.0.0)