r - 通过在不同向量中定义的因子来获取一个向量

标签 r

假设我有两个向量,

v1 = c(1,2,1,4,5,6,2,2,4,5,5,6)
v2 = c('lo', 'lo', 'la', 'la', 'la', 'li', 'li', 'li', 'li', 'lo', 'li', 'la')

我想取v1的平均值, 通过 lo, la, li 中定义的组 ( v2 ) .什么是不循环的有效方法?

谢谢!

最佳答案

这是 tapply 的标准票价:

tapply(v1, v2, mean)
#       la       li       lo 
# 4.000000 3.800000 2.666667 

此外,一个有趣的方法可能是:
xtabs(v1 ~ v2)/table(v2)  ## sum divided by length

如果我猜测(其他人可以自由地实际进行基准测试),我会认为 tapplyby在这种情况下,性能将非常接近。 xtabs + table不应该太慢,但肯定会因为双重制表而变慢。因为所有的转换为 data.frame ,试图简化输出,等等,我想aggregate成为最慢的方法。

关于r - 通过在不同向量中定义的因子来获取一个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24853791/

相关文章:

r - 如何在R中合并两列但保留NA?

r - R中的不均匀矩阵变换?

r - 在更改要在 R Shiny 中绘制的变量时,防止绘图选择的迹线重置

r - 将直接标签添加到 geom_smooth 而不是 geom_line

r - 带有字符串标签的颜色条指南,例如 "low - medium - high"

css - 在 R Shiny 中旋转 react 物的 header

r - 连接 data.frame 或 data.table 中的匹配列

c++ - 调试可能的 Rcpp 内存泄漏时遇到问题

r - 连接周期以获得时间序列,同时针对不同的起点

R:如何按小时和分钟过滤时间戳?