r - 有条件地替换数组中的值

标签 r

我想修改一个数组,但具有逐个元素的条件。这就是我想要做的

vector <- runif(18, 0,1)
xx <- array(vector, dim=c(2,3,3))
for (i in 1:2) {
    for (j in 1:3) {
        xx[i,j,1] <- ifelse(xx[i,j,1]<0.5,1,xx[i,j,1])
        xx[i,j,2] <- ifelse(xx[i,j,2]<0.4,1.5,xx[i,j,2])
        xx[i,j,3] <- ifelse(xx[i,j,3]<0.2,2,xx[i,j,3])
    }
}

有没有更有效的方法呢? 谢谢

最佳答案

不确定您所说的高效是什么意思,但这可以避免循环:

vector <- runif(18, 0,1)
xx <- array(vector, dim=c(2,3,3))
xx
xx[,,1][xx[,,1]<.5] <- 1
xx[,,2][xx[,,2]<.4] <- 1.5
xx[,,3][xx[,,3]<.2] <- 2

Try it online!

关于r - 有条件地替换数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50273763/

相关文章:

javascript - 使用 return 在文本区域中提交输入而不插入换行符

r - 为什么rbindlist是 "better"而不是rbind?

r - 如何将测试应用到包中与特定命名模式匹配的所有函数?

R求和数据透视表

找不到符号 "Embeddedrcall_Init"

r - 将有关四键的信息加入到平铺 shapefile

r - 如何在 `curvature` `ggplot2` 函数中传递单个 `geom_curve` 参数?

r - 从推文中提取主题标签

r - 如何基于一个数据集最好地从 RMarkdown 生成多个 HTML 文件?

Oracle R Enterprise (ORE) KMeans 包