Error in seq.default(a, b, c): 'from' must be of length 1

目录

Error in seq.default(a, b, c): 'from' must be of length 1

问题:

解决:

完整错误:

问题:

fun <- function(a, b, c) {

sum(seq(a, b, c))

}

df <- data.frame(mn = c(1, 2, 3),

mx = c(8, 13, 18),

rng = c(1, 2, 3))

df %>%

mutate(output = fun(a = mn, b = mx, c = rng))

解决:

我们编写了一个自定义函数,需要将这个自定义函数应用于dataframe中的每一行数据;

mutate函数将根据值向量创建一个新变量。但是如果我们使用的函数不能接受向量,也不能输出向量,那么我们必须使用rowwise逐行操作。

我们可以在管道链中使用rowwise来告诉dplyr逐行执行以下所有命令。

其中自定义函数:对于从数a到数b,每2个数值间隔为c的等差数列,函数将计算该数列的和;

#

fun <- function(a, b, c) {

sum(seq(a, b, c))

}

df <- data.frame(mn = c(1, 2, 3),

mx = c(8, 13, 18),

rng = c(1, 2, 3))

df %>%

rowwise %>%

mutate(output = fun(a = mn, b = mx, c = rng))

#> Source: local data frame [3 x 4]

#> Groups:

#>

#> # A tibble: 3 x 4

#> mn mx rng output

#>

#> 1 1 8 1 36

#> 2 2 13 2 42

#> 3 3 18 3 63

完整错误:

> fun <- function(a, b, c) { +     sum(seq(a, b, c)) + } >  > df <- data.frame(mn = c(1, 2, 3), +                  mx = c(8, 13, 18), +                  rng = c(1, 2, 3)) >  > df %>% +     mutate(output = fun(a = mn, b = mx, c = rng)) Error in `mutate()`: ! Problem while computing `output = fun(a = mn, b =   mx, c = rng)`. Caused by error in `seq.default()`: ! 'from' must be of length 1 Run `rlang::last_error()` to see where the error occurred. Called from: signal_abort(cnd, .file) Browse[1]>  > 

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: