Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中应用函数族_R_For Loop_Apply - Fatal编程技术网

在R中应用函数族

在R中应用函数族,r,for-loop,apply,R,For Loop,Apply,我在这种形式下有一个双循环: for (j in 1:col(mat)) { for (i in 1:nrow(mat)) { decision[i][j] = ifelse(mat[i][j] > 3, 1, 0) } } 有没有任何方法可以通过其中一个速度显著提高的应用函数来实现此功能?R是一种矢量化语言,因此对于矩阵的这种简单操作,不需要应用类型函数,只需执行以下操作: decision <- ifelse(mat > 3, 1,

我在这种形式下有一个双循环:

for (j in 1:col(mat))
{
    for (i in 1:nrow(mat))
    {
       decision[i][j] = ifelse(mat[i][j] > 3, 1, 0)
    }
}

有没有任何方法可以通过其中一个速度显著提高的应用函数来实现此功能?

R是一种矢量化语言,因此对于矩阵的这种简单操作,不需要应用类型函数,只需执行以下操作:

decision <- ifelse(mat > 3, 1, 0)
决定3,1,0)

(我假设你想迭代矩阵的元素,这意味着你会说循环中的
ncol(mat)
col
给出了一些非常不同的东西)。

R是一种矢量化语言,因此对于矩阵的这种简单操作
应用
类型函数是不需要的,只需执行以下操作:

decision <- ifelse(mat > 3, 1, 0)
决定3,1,0)

(我假设你想迭代矩阵的元素,这意味着你会说循环中的
ncol(mat)
col
给出了一些非常不同的东西)。

R是一种矢量化语言,因此对于矩阵的这种简单操作
应用
类型函数是不需要的,只需执行以下操作:

decision <- ifelse(mat > 3, 1, 0)
决定3,1,0)

(我假设你想迭代矩阵的元素,这意味着你会说循环中的
ncol(mat)
col
给出了一些非常不同的东西)。

R是一种矢量化语言,因此对于矩阵的这种简单操作
应用
类型函数是不需要的,只需执行以下操作:

decision <- ifelse(mat > 3, 1, 0)
决定3,1,0)

(我假设你想迭代矩阵的元素,这意味着你会在循环中说
ncol(mat)
col
给出了一些完全不同的东西)。

你不需要任何循环。如果您创建一个如下所示的矩阵

mat<-matrix(sample(1:10, 5*7, replace=T), ncol=7)
#     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,]    9    6   10    7    6   10    6
#[2,]    7    6    3    3    6    8    3
#[3,]    7    9    7    5    6    7    6
#[4,]    2    3    8    6   10    1    5
#[5,]    4    1    5    6    1   10    6

mat您不需要任何循环。如果您创建一个如下所示的矩阵

mat<-matrix(sample(1:10, 5*7, replace=T), ncol=7)
#     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,]    9    6   10    7    6   10    6
#[2,]    7    6    3    3    6    8    3
#[3,]    7    9    7    5    6    7    6
#[4,]    2    3    8    6   10    1    5
#[5,]    4    1    5    6    1   10    6

mat您不需要任何循环。如果您创建一个如下所示的矩阵

mat<-matrix(sample(1:10, 5*7, replace=T), ncol=7)
#     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,]    9    6   10    7    6   10    6
#[2,]    7    6    3    3    6    8    3
#[3,]    7    9    7    5    6    7    6
#[4,]    2    3    8    6   10    1    5
#[5,]    4    1    5    6    1   10    6

mat您不需要任何循环。如果您创建一个如下所示的矩阵

mat<-matrix(sample(1:10, 5*7, replace=T), ncol=7)
#     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,]    9    6   10    7    6   10    6
#[2,]    7    6    3    3    6    8    3
#[3,]    7    9    7    5    6    7    6
#[4,]    2    3    8    6   10    1    5
#[5,]    4    1    5    6    1   10    6

马特为了澄清,存在
+0
是为了将
TRUE
FALSE
的逻辑结果更改为数字结果(请在不使用
+0
的情况下尝试查看)。谢谢@John,这对我来说是新的。好的知识要澄清的是,
+0
的存在是为了将
TRUE
FALSE
的逻辑结果更改为数字结果(在不使用
+0
的情况下尝试)。谢谢@John,这对我来说是新的。好的知识要澄清的是,
+0
的存在是为了将
TRUE
FALSE
的逻辑结果更改为数字结果(在不使用
+0
的情况下尝试)。谢谢@John,这对我来说是新的。好的知识要澄清的是,
+0
的存在是为了将
TRUE
FALSE
的逻辑结果更改为数字结果(在不使用
+0
的情况下尝试)。谢谢@John,这对我来说是新的。另外,要访问R中
矩阵
(或
数据.frame
)的第i行和第j列,您需要执行
[i,j]
[i][j]
。此外,要访问R中
矩阵
(或
数据.frame
)的第i行和第j列,您还需要执行
[i,j]
[i][j]/code>,要访问R中
矩阵
(或
data.frame
)的第i行和第j列,您需要执行
[i,j]
[i][j]
。此外,要访问R中
矩阵
(或
data.frame
)的第i行和第j列,您需要执行
[i,j]/code>非
[i][j]/code>。