0,我想每 3 个添加一个单元格。 例子: mat 0, x + 3, x)) [,1] [,2] [,3] [,4] [,-6ren">
gpt4 book ai didi

r - 函数 "if "应用于每个单元格

转载 作者:行者123 更新时间:2023-12-01 22:05:14 25 4
gpt4 key购买 nike

我正在尝试对 R 中矩阵的每个单元格执行一个函数。如果它们 > 0,我想每 3 个添加一个单元格。

例子:

mat <- matrix(data=0:9, nrow=5, ncol=10, byrow=F)
mat3 <- apply(mat, MARGIN = 1, FUN= function(mat) if(mat != 0) {mat+3})

但首先创建了一个长度为 5 的列表,其次是每 3 个添加的所有单元格。

最佳答案

对于这个简单的案例,最好使用@akrun 或@Karolis Koncevičius 的解决方案,但您也可以这样做:

apply(mat, 2, function(x) ifelse(x > 0, x + 3, x))

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0 8 0 8 0 8 0 8 0 8
[2,] 4 9 4 9 4 9 4 9 4 9
[3,] 5 10 5 10 5 10 5 10 5 10
[4,] 6 11 6 11 6 11 6 11 6 11
[5,] 7 12 7 12 7 12 7 12 7 12

关于r - 函数 "if "应用于每个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52354807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com