本文介绍了结合两个循环结构以获得矩阵输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在R中使用了两个密切相关的公式.我想知道是否有可能将 B1
和 B2
组合起来以获得我的所需矩阵输出如下所示?
I'm using two closely related formulas in R. I was wondering if it might be possible to combine B1
and B2
to get my desired matrix output shown below?
z <- "group y1 y2
1 1 2 3
2 1 3 4
3 1 5 4
4 1 2 5
5 2 4 8
6 2 5 6
7 2 6 7
8 3 7 6
9 3 8 7
10 3 10 8
11 3 9 5
12 3 7 6"
dat <- read.table(text = z, header = T)
(B1 = Reduce("+", group_split(dat, group, .keep = FALSE) %>%
map(~ nrow(.)*(colMeans(.)-colMeans(dat[-1]))^2)))
# y1 y2
#61.86667 19.05000
(B2 = Reduce("+",group_split(dat, group, .keep = FALSE) %>%
map(~ nrow(.)*prod(colMeans(.)-colMeans(dat[-1])))))
# 24.4
所需的矩阵输出:
matrix(c(61.87,24.40,24.40,19.05),2)
# [,1] [,2]
#[1,] 61.87 24.40
#[2,] 24.40 19.05
推荐答案
也许像这样吗?
mat <- matrix(B2, length(B1), length(B1))
diag(mat) <- B1
mat
# [,1] [,2]
#[1,] 61.87 24.40
#[2,] 24.40 19.05
这篇关于结合两个循环结构以获得矩阵输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!