r - 沿向量映射并使用 purrr 系列函数输出嵌套列表(或嵌套 data.frames)的 data.frame 列?
问题描述
我正在尝试映射一个向量,输入向量的每个元素的输出本身就是一个向量。换句话说,向量的第一个元素的输出是一个向量。第二,第三,第四等的输出也是如此。
最小的可重现示例
library(purrr)
library(tidyverse)
set.seed(123)
input <- c(1, 2, 3)
rand <- runif(3)
data.frame(input=input) %>%
map_df(function(x) { x * rand})
# input
# <dbl>
# 1 0.288
# 2 1.58
# 3 1.23
实际每行只返回一个值,而所需的输出是嵌套向量、列表或 data.frame(每行 3 个元素而不是 1 个元素是明智的)。
如何才能做到这一点?
解决方案
一种选择是使用map
withinmutate
在数据框中创建一个列表。
data.frame(input=input) %>%
mutate(rand_3 = map(input, function(x) x * rand))
#------
input rand_3
1 1 0.2875775, 0.7883051, 0.4089769
2 2 0.5751550, 1.5766103, 0.8179538
3 3 0.8627326, 2.3649154, 1.2269308
推荐阅读
- java - Android 游戏中不允许使用 W+E 加载段
- javascript - Kotlin:将本地 html js 加载到 android WebView
- javascript - 如何在 JavaScript 中创建和修改关联数组?
- tiddlywiki - TiddlyWiki:按多个标签过滤目录
- vue.js - vue js中子组件的css样式
- django - 如何在 Django 项目中使用不同的登录名定向到不同的应用程序?
- google-chrome - 我想为我访问的所有网站构建一个 Chrome 扩展程序,它可以自动使用 Ctrl+f 输入/存储在工具中的单词
- floating-point - 浮点减法恒等式
- reactjs - React + Enzyme - 在功能组件中找不到任何东西
- java - 将延迟初始化对象设为空,而对象在 jpa 中使用休眠代理