小编Alb*_*app的帖子

read_csv() 使用随机数做什么?

我只是注意到以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)

编辑:

  1. 正如rawr的评论所建议的那样,我尝试指定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)
  1. 由于很多人询问 R 和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)

reprex 包( v2.0.0 )于 2021 年 …

r readr

8
推荐指数
1
解决办法
108
查看次数

是什么触发了“祖先必须是环境”错误?

我正在运行并行计算,用于foreach同时处理大量时间序列。在这些计算中(在一个名为我的函数中,compute_slope()我做了这样的事情

\n
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]\n
Run Code Online (Sandbox Code Playgroud)\n

所以,这是非常简单的事情:使用参数TMaxdeltam在左侧和右侧截断时间序列(使用filter()),然后对截断的时间序列运行线性回归。\n出于某种奇怪的原因,大多数时候一切都很顺利,但有时(我怀疑在较长的时间序列中更有可能发生错误,即TMax较大,但这也有点不规则)我得到

\n
\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"\n
Run Code Online (Sandbox Code Playgroud)\n

我真的不知道如何解释这个错误。我也很难复制这个“祖先”错误,但到目前为止还没有运气。例如,我尝试过 …

r dplyr doparallel

6
推荐指数
1
解决办法
435
查看次数

将 dplyr 的 if_else 函数与函数 true/false 值结合使用

问题

如何使用 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)

r dplyr

2
推荐指数
1
解决办法
2684
查看次数

标签 统计

r ×3

dplyr ×2

doparallel ×1

readr ×1