r - add_column 适用于矩阵
问题描述
我有一个2-by-2
小标题,add_column
用来添加一个2-by-2
矩阵。我想要一个生成的4-by-4
小标题,但它最终有一个2-by-3
小标题。
这是一个示例代码:
A <- tibble( x = c(-1,1), y = c(-2,2))
A <- A %>% add_column( z = matrix( rnorm(4), 2,2 ) )
并dim(A)
返回 2 3
。
所以我的问题是这个结果矩阵如何2-by-4
?
解决方案
我们可以从matrix
列'z'展平为常规列do.call
并data.frame
调用
library(dplyr)
library(tibble)
A %>%
add_column( z = matrix( rnorm(4), 2,2 ) ) %>%
do.call(data.frame, .) %>%
as_tibble
-输出
# A tibble: 2 x 4
# x y z.1 z.2
# <dbl> <dbl> <dbl> <dbl>
#1 -1 -2 -1.41 -1.93
#2 1 2 1.80 1.01
或者另一种选择是将其拆分matrix
为一个list
并asplit
使用unnest_wider
library(tidyr)
A %>%
add_column( z = matrix( rnorm(4), 2,2 ) ) %>%
mutate(z = asplit(z, 2)) %>%
unnest_wider(c(z))
推荐阅读
- c++ - stl中是否有类似execute_if算法的东西?
- php - 从 laravel 中的 textarea 开头删除多余的空格
- python - 如何使用python解析多个类或标题名称中的HTML
- javascript - javascript事件不适用于循环
- react-native - 我的 React 本机按钮文本没有出现在 iOS 中,但在 android 中可以正常工作
- html - CSS - 溢出-y:滚动;不能滚动并获得> 100%的块高度
- aws-lambda - 如何从本地锅炉模板创建无服务器模板
- firebase - Flutter - Firebase Analytics 依赖错误
- azure - ARM 输出任务在输出变量中添加“25”个字符
- javascript - React - 错误:目标容器不是 DOM 元素