【问题标题】:R sapply new evaluation of function for each incidence in arrayR sapply 对数组中每个事件的函数进行新的评估
【发布时间】:2020-05-29 12:03:20
【问题描述】:

多亏了很多帮助,当满足某些条件时,我得到了一个表达式,可以将 rbinom 中的值替换为向量。我的问题是它总是替换相同的值,即不对每个满足条件的实例进行新的评估。我想我只需要将它包装在一个 sapply 语句中,但语法不正确。 MWE:

arr1 <- c(8, 2, 5, 2, 3, 2, 2, 2, 8, 2, 4)
arr2 <- c(0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0)

arr1
arr1[Reduce("&", list(arr1 == 2, arr2 ==1))] <- rbinom(1,1,0.5) * 2
arr1
arr1
[1] 8 2 5 0 3 0 0 0 8 0 4

我希望它改变了一些值而不是其他值,所以对每个实例再次评估结果。这是 purrr::modify2 的一个很好的应用吗?谢谢。 J

【问题讨论】:

    标签: r arrays tidyverse substitution evaluation


    【解决方案1】:

    可能,你的意思是使用:

    inds <- arr1 == 2 & arr2 == 1
    arr1[inds] <- rbinom(sum(inds), 1, 0.5) * 2
    

    【讨论】:

      猜你喜欢
      • 2011-12-03
      • 1970-01-01
      • 2020-11-08
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2021-07-23
      相关资源
      最近更新 更多