R数据科学 16.5.3练习题

(1) 编写代码以使用一种映射函数完成以下任务。

a. 计算 mtcars 数据集中每列的均值。

b. 确定 nycflights13::flights 数据集中每列的类型。

c. 计算 iris 数据集中每列唯一值的数量。

d. 分别使用 μ= -10、0、10 和 100 的正态分布生成 10 个随机数。

复制代码
library(purrr)
# 计算 mtcars 每列的均值
mean_mtcars <- map(mtcars, mean)
# 确定 flights 数据集中每列的类型
column_types <- map(flights, class)
# 计算 iris 数据集中每列的唯一值的数量
unique_count <- map(iris, ~ length(unique(.)))
# 使用不同的均值生成 10 个随机数
random_numbers <- map(c(-10, 0, 10, 100), ~ rnorm(10, mean = .))

(2) 如何建立一个向量来表明数据框中的每一列是否为一个因子?

复制代码
# 建立一个向量表明每列是否为因子
is_factor <- map_lgl(iris, is.factor)

(3) 如果在非列表向量上使用映射函数,那么会发生什么情况? map(1:5, runif) 的作用是什么?为什么?

输出将是一个列表,其中包含不同长度的随机数向量。

map(1:5, runif) 会为向量 1:5 中的每个元素执行 runif() 函数,并生成相应数量的随机数。

(4) map(-2:2, rnorm, n = 5) 的作用是什么?为什么? map_dbl(-2:2, rnorm, n = 5) 的作用又是什么?为什么?

复制代码
map(-2:2, rnorm, n = 5)

该语句对 -2:2 进行映射,并对每个值执行 rnorm(n = 5, mean = x),即生成均值为 -2、-1、0、1 和 2 的 5 个正态分布随机数。每次生成的结果是一个包含 5 个随机数的列表,每个元素对应不同的均值。

复制代码
map_dbl(-2:2, rnorm, n = 5)

map_dbl() 会尝试将结果强制为数值向量,但由于 rnorm() 返回的是一个向量,map_dbl() 无法处理,所以会抛出一个错误。map_dbl() 适用于返回单个数值的函数,而不是返回向量的函数。

(5) 重写 map(x, function(df) lm(mpg ~ wt, data = df)) 这段代码,去除匿名函数。

复制代码
# 定义一个具体的函数  
fit_model <- function(df) {  
  lm(mpg ~ wt, data = df)  
}  
  
# 使用 map 调用这个函数  
result <- map(x, fit_model)
相关推荐
小张同学82415 小时前
-RAG检索增强生成让智能体拥有企业级专属知识库
开发语言·python·架构·pycharm
DevilSeagull15 小时前
Rust 枚举(enum)深度解析:从定义到 Option 的安全之道
开发语言·后端·安全·rust·github
Ulyanov15 小时前
《现代 Python 桌面应用架构实战:PySide6 + QML 从入门到工程化》:实时时钟与数据驱动 UI —— 从“事件回调”到“状态绑定”的范式跃迁
开发语言·python·qt·ui·架构·交互
AI进化营-智能译站15 小时前
ROS2 C++开发系列06:变量、数据类型与IO实战
java·开发语言·c++·ai
学弟17 小时前
【快捷】通过指定CPU的分配解决A100服务器上多训练任务核心争抢导致的训练速度慢的问题
人工智能·深度学习·机器学习
阿里嘎多学长1 天前
2026-04-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
叶小鸡1 天前
Java 篇-项目实战-苍穹外卖-笔记汇总
java·开发语言·笔记
AI人工智能+电脑小能手1 天前
【大白话说Java面试题】【Java基础篇】第22题:HashMap 和 HashSet 有哪些区别
java·开发语言·哈希算法·散列表·hash
时空系1 天前
第10篇:继承扩展——面向对象编程进阶 python中文编程
开发语言·python·ai编程
CHANG_THE_WORLD1 天前
python 批量终止进程exe
开发语言·python