【问题标题】:arithmetic in r error: longer object length is not a multiple of shorter object length [duplicate]r中的算术错误:较长的对象长度不是较短对象长度的倍数[重复]
【发布时间】:2017-09-02 03:59:16
【问题描述】:

非常简单的问题,对于像我这样的新手来说,在 R 中很难。

x <- c(1,2,3,4)

y <- c(1,2,3) 

对象长度不同。所以我不能执行,比如说,z

处理不同对象长度的算术的最佳方法是什么。加个0?

【问题讨论】:

  • 可以执行z ?Arithmetic。问题是你为什么要这样做?

标签: r math


【解决方案1】:

要以编程方式执行此操作,您可以首先将向量放入一个命名向量中,我们可以在该向量上运行分组函数。

z <- setNames(c(x, y), c(seq_along(x), seq_along(y)))
#  1 2 3 4 1 2 3 
#  1 2 3 4 1 2 3 

现在我们可以为总和运行一个分组函数:

unname(tapply(z, names(z), sum))
# [1] 2 4 6 4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多