【问题标题】:Data Management / Vector Manipulations (In the R language)数据管理/向量操作(R 语言)
【发布时间】:2010-11-08 02:22:12
【问题描述】:

我需要在 R 中实现的通用算法是:

z_i=min(x_i-y_i-a,x_i-b). 

我使用 i 作为我的 z、y 和 x 向量的索引。 Z 是我想在回归模型中使用的新向量。如果尝试使用各种类型的循环都没有成功。

【问题讨论】:

    标签: r statistics


    【解决方案1】:

    我相信你想要pmin 函数。

    set.seed(21)
    x <- runif(10)
    y <- rnorm(10)
    a <- 1
    b <- 0.5
    pmin(x-y-a,x-b)
    # [1] -0.64701585 -0.24755440  0.19925230 -0.87903259 -0.03799284
    # [6]  0.41868340 -1.65560767 -0.32780832 -0.18654580 -0.71345697
    

    【讨论】:

    • 这会给我一个一般的 z_i,i=[1,...,1000],所以我需要比这更优雅的东西。
    • @Jerome:我不知道“一般的 z_i”是什么。如果你能提供一个例子,那真的很有帮助。
    • 一般的 z_i 只是 z 向量的第“i”个分量。在这种情况下,我有两个向量 (x,y),我根据上述算法逐个索引地转换它们。我需要一种方法来获取 pmin 函数(如上所示)并循环 1000 次左右。我在原来的帖子中没有提到这个功能,因为我不确定这是解决这个问题的最强大的解决方案。
    • 许多 R 函数是矢量化的,这意味着它们已经逐个元素地工作。 pmin 就是这样一种功能。您无需为定义z_ix_iy_i 等而烦恼。pmin 的输出将与您的xy 向量的长度相同。你不需要循环。
    • 谢谢。不知道我是怎么错过的。
    猜你喜欢
    • 2013-06-16
    • 2023-04-04
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 2016-10-16
    • 2020-10-11
    • 1970-01-01
    • 2012-10-19
    相关资源
    最近更新 更多