如何让R的head()输出保留perc_survived列6位小数(Swirl作业)
解决Swirl作业中head()显示泰坦尼克号数据perc_survived列6位小数的问题
我刚搞定了Swirl泰坦尼克号作业里的一个棘手问题,正好和你遇到的情况完全匹配:用dplyr处理数据后,perc_survived列在执行print(titanic_4)时能完整显示6位小数,但调用head(titanic_4)时就被截断成5位,试了一堆方法都没通过Swirl的校验:
- 试了
print(titanic_4[1:6,]),结果还是截断,没用; - 用
sprintf()格式化会把列转成字符型,直接被Swirl拒绝了。
最后终于找到两个关键操作,组合起来就能完美满足要求:
全局设置显示精度
先调整R的全局显示位数,确保足够容纳6位小数:options(digits = 8)精确计算目标列
在计算perc_survived的时候,直接用round()函数指定保留6位小数,而不是靠后续显示设置来凑:titanic_4 <- titanic_4 %>% mutate(perc_survived = round((100 * survivors / N), digits = 6))
做完这两步再调用head(titanic_4),perc_survived列就会稳稳显示6位小数,完全符合Swirl的作业要求啦!
内容的提问来源于stack exchange,提问作者user9237696
相关产品推荐
相关产品推荐

