矩阵乘法后取消嵌套小标题

问题描述 投票:0回答:1

作为简单的例子,我想计算两个向量的矩阵乘积。

a <- tibble(n=c("A", "B"), y=c(10,20))
b <- tibble(x=c(5, 15))

res <- a %>% 
  mutate(rotated = map2(y, b, ~ .x %*% .y)) %>% 
  unnest(rotated)

一切似乎都很好,但我希望在解除嵌套后,小标题应该是 2x4 小标题,但我仍然有一个 2x3 小标题,例如

  n         y rotated[,1]  [,2]
  <chr> <dbl>       <dbl> <dbl>
1 A        10          50   150
2 B        20         100   300

检查后

res$rotated

我会得到错误

Error in if (nchar(current) > nchars) { : 
  missing value where TRUE/FALSE needed 

还有

的答案

如何取消小标题中小标题的嵌套?

bind_cols
并不能解决问题。

感谢您的任何提示

r tibble unnest
1个回答
0
投票

或许你可以尝试一下

a %>%
  mutate(rotated = data.frame(do.call(rbind, map2(y, b, ~ .x %*% .y)))) %>%
  unnest_wider(rotated)

这给出了

# A tibble: 2 × 4
  n         y    X1    X2
  <chr> <dbl> <dbl> <dbl>
1 A        10    50   150
2 B        20   100   300
© www.soinside.com 2019 - 2024. All rights reserved.