使用 possibly() 转换数值
假设您需要把 sw_people 中的《星球大战》角色身高从厘米转换为英尺。您已经知道有些身高数据缺失,因此将使用 possibly() 把缺失或无法处理的值转换为 NA。然后把每个已有的数值乘以 0.0328084,将厘米换算为英尺。
为了先了解数据,请在控制台打印 height_cm,查看以厘米为单位的身高。
本练习是课程的一部分
使用 purrr 掌握函数式编程基础
练习说明
- 将对象
height_cm管道传入一个返回双精度向量的map_*()函数。 - 将
height_cm的每个元素转换为英尺(乘以 0.0328084)。 - 由于并非所有元素都是数值,请使用
possibly()将无法处理的情况替换为NA_real_。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create a piped workflow that returns double vectors
___ %>%
map___(possibly(function(___){
# Convert centimeters to feet
___ * 0.0328084
}, ___))