【发布时间】:2017-09-02 03:59:16
【问题描述】:
非常简单的问题,对于像我这样的新手来说,在 R 中很难。
x <- c(1,2,3,4)
y <- c(1,2,3)
对象长度不同。所以我不能执行,比如说,z
处理不同对象长度的算术的最佳方法是什么。加个0?
【问题讨论】:
-
你可以执行z ?Arithmetic。问题是你为什么要这样做?
非常简单的问题,对于像我这样的新手来说,在 R 中很难。
x <- c(1,2,3,4)
y <- c(1,2,3)
对象长度不同。所以我不能执行,比如说,z
处理不同对象长度的算术的最佳方法是什么。加个0?
【问题讨论】:
要以编程方式执行此操作,您可以首先将向量放入一个命名向量中,我们可以在该向量上运行分组函数。
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
【讨论】: