【问题标题】:R: 'from' must be of length 1R:“来自”的长度必须为 1
【发布时间】:2021-07-28 16:46:50
【问题描述】:

我正在使用 R 编程语言。

我正在尝试使用“expand.grid”命令定义网格,其中网格“自我引用”本身:

random_1 <- seq(80,100,5)
random_2 <- seq(random_1,120,5)
random_3 <- seq(85,120,5)
random_4 <- seq(random_3,120,5)
split_1 =  seq(0,1,0.5)
split_2 =  seq(0,1,0.5)
split_3 =  seq(0,1,0.5)
DF_2 <- expand.grid(random_1 , random_2, random_3, random_4, split_1, split_2, split_3)

但这会返回以下错误:

Error in seq.default(random_3, 120, 5) : 'from' must be of length 1
>

有人知道如何解决这个错误吗?

谢谢

【问题讨论】:

    标签: r datagrid data-manipulation


    【解决方案1】:

    seq 将单个元素作为fromto。根据?seq

    from, to - 序列的起始值和(最大)结束值。长度为 1,除非只是 from 作为未命名的参数提供

    我们可以遍历“random_1”

    lapply(random_1, function(x) seq(x, 120, 5))
    

    random_3做同样的事情并构造为

    > random_2 <- lapply(random_1, function(x) seq(x, 120, 5))
    > random_3 <- seq(85,120,5)
    > random_4 <- lapply(random_3, function(x) seq(x, 120, 5))
    > split_1 =  seq(0,1,0.5)
    > split_2 =  seq(0,1,0.5)
    > split_3 =  seq(0,1,0.5)
    > DF_2 <- expand.grid(c(list(random_1), random_2, random_3, random_4, list(split_1, split_2, split_3)))
    

    【讨论】:

    • 感谢您的回答!什么是“函数(x)”?
    • @stats555 它是一个 lambda/匿名函数,即。动态创建的功能。通常我们创建函数为f1 &lt;- function(x) do this。相反,我们可以在表达式较短时使用function(x) do this
    • @stats555 请注意,expand.grid 有一个限制。
    • @stats555 你想看哪个问题
    • 再次感谢!真的很感激!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 2020-10-27
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多