I
对矩阵列应用排序后向量的作用是什么s
?
n = 10
I = c(2, 8)
s = matrix(runif(n*20), nrow=20)
M = apply(s, 2, sort)[I,]
我们可以用另一种更简单的方式编写这段代码吗?
I
对矩阵列应用排序后向量的作用是什么s
?
n = 10
I = c(2, 8)
s = matrix(runif(n*20), nrow=20)
M = apply(s, 2, sort)[I,]
我们可以用另一种更简单的方式编写这段代码吗?
R 的幂是不是通过单个值而是通过向量来索引向量或数组。假设以下示例:
foo = 5:10 # foo = 5 6 7 8 9 10
foo[3] # 7
foo[1:3] # 5 6 7
foo[-2] # excluding the 2nd item -> 5 7 8 9 10
现在在数组上:
bar = data.frame(1:3, 4:6)
bar[,2] # The 2nd column: 4 5 6
bar[-1,] # Excluding the first row
bar[c(2,3),] # Extracts the second and third rows
在您的原始示例中,apply(s, 2, sort)
对矩阵的每一列进行排序s
(如果使用apply(s, 1, sort)
它将对行进行排序),然后[I,]
将先前命令的结果限制为仅第 2 行和第 8 行。因此,在此程序之后,您将只有s
.
请注意,I
它在 R 中可能有不同的含义。在您的情况下,它只是一个变量名,它可以是其他任何名称。但I(x)
也是 R 中的一个函数。有关更多信息,您可以使用?I
.