小编Min*_*ark的帖子

R中的多重外积

假设我们有四个向量,每个向量都是三维的:

v1 <- c(1, 2, 3)
v2 <- c(4, 5, 6)
v3 <- c(2, 2, 2)
v4 <- c(3, 2, 1)
Run Code Online (Sandbox Code Playgroud)

我的目标是创建一个包含每个向量的外积的数组:

tmp_array <- array(NA, dim = c(3, 3, 4))
tmp_array[, , 1] <- outer(v1, v1)
tmp_array[, , 2] <- outer(v2, v2)
tmp_array[, , 3] <- outer(v3, v3)
tmp_array[, , 4] <- outer(v4, v4)
Run Code Online (Sandbox Code Playgroud)

我们现在拥有的是一个包含四个向量的矩阵:

tmp_matrix <- rbind(v1, v2, v3, v4)
Run Code Online (Sandbox Code Playgroud)

我想tmp_array通过紧凑地使用来生成tmp_matrix

我尝试过outer(t(tmp_matrix), tmp_matrix)outer(tmp_matrix, tmp_matrix)等等,但这些都不是解决方案。

如何才能tmp_array紧凑地创建?(即不使用循环)

arrays r matrix

4
推荐指数
1
解决办法
182
查看次数

在 R 中生成范围为 [1, 3] 的正态分布随机变量

我想生成一个范围为 [1, 3] 的正态分布随机变量。

具体来说,我尝试了以下 R 代码:

x1 <- runif(100, 1, 2)
x2 <- rnorm(100, 0, 0.3)

V <- 1 + x1 + x2
Run Code Online (Sandbox Code Playgroud)

然后,V服从正态分布(以 为条件x1)并且大致集中在 [1, 3] 上。

但是,我想让V范围为 [1, 3]。也就是说,所有元素都应该在 [1, 3] 中,而不是粗略地在 [1, 3] 中:

min(V)
[1] 1
max(V)
[1] 3
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办。有完成这项任务的技术吗?

r normal-distribution

0
推荐指数
1
解决办法
170
查看次数

标签 统计

r ×2

arrays ×1

matrix ×1

normal-distribution ×1