前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R中稀奇古怪的代码报错

R中稀奇古怪的代码报错

作者头像
R语言数据分析指南
发布2023-11-13 10:44:00
2580
发布2023-11-13 10:44:00
举报
文章被收录于专栏:R语言数据分析指南

❝最近偶尔遇到个别朋友询问运行代码报错的情况,各种情况都有但是长久的情景几乎是一致。本节来解答一下遇到这些该如何执行。个人观点仅供参考 ❞

案例1

代码语言:javascript
复制
rlang::last_trace()

没有明显的错误出现,但是却有跟rlang相关的字符,这多半是tidyverse版本的问题,此时重新安装tidyverse即可

案例2

代码语言:javascript
复制
Error in voronoi_treemap(hoursPerDayCombined ~ Category + Subcategory,  : 
  could not find function "voronoi_treemap"

遇到上述情况多半是未加载需要的包,可通过网络检索该函数即可得知所对应的R包

案例3

❝一堆警告信息就是报错不出图,遇到这种情况多半是所使用的R包作者进行了更新,这种情况尤其是在「github」上发布的R包常出现,因此可去作者github主页查看最新的更新情况,一般都会有案例说明。 ❞

案例4

❝毫无头绪的报错,数据处理后就是无结果反馈。这种情况就比较复杂了,有可能是R包之间函数冲突,有可能是版本问题,更甚者是电脑性能的问题。下面举个实际例子来进行说明 ❞

案例图

此图为小编2023年9月25日公众号发布的一篇文档图,此次在原有代码的基础上做了简化,代码如下

加载R包

代码语言:javascript
复制
library(tidyverse)
library(ggtext)
library(glue)
#install.packages("rcartocolor")
library(rcartocolor)
# devtools::install_github("AllanCameron/VoronoiPlus")
library(VoronoiPlus)

导入数据

代码语言:javascript
复制
all_countries <- read_csv("all_countries.csv")
country_regions <- read_csv("country_regions.csv")

数据清洗

代码语言:javascript
复制
au_data <- all_countries |> 
  select(Category, Subcategory, hoursPerDayCombined, country_iso3) |> 
  left_join(country_regions, by = "country_iso3") |> 
  filter(country_name == "Australia") |> 
  select(Category, Subcategory, hoursPerDayCombined)

au_vor <- voronoi_treemap(hoursPerDayCombined ~ Category + Subcategory,
                          data = au_data)

set.seed(1234)
groups <- filter(au_vor, level == 1)

subgroups <- filter(au_vor, level == 2) |> 
  group_by(group) |> 
  mutate(alpha = runif(1, 0, 0.6)) |> 
  ungroup()

定义颜色

代码语言:javascript
复制
cols_vec = rcartocolor::carto_pal(length(unique(au_data$Category))+1, "Prism")[1:length(unique(au_data$Category))]
names(cols_vec) = unique(au_data$Category)

数据可视化

代码语言:javascript
复制
ggplot() +
  geom_polygon(data = groups,mapping = aes(x = x, y = y, group = group, fill = group),
               colour = "white",linewidth = 5) +
  geom_polygon(data = subgroups,
               mapping = aes(x = x, y = y, group = group, alpha = alpha),
               fill = "#fafafa",colour = "#fafafa",linewidth = 0.3) +
  geom_text(data = groups %>% group_by(group) %>% 
              summarize(x = mean(x), y = mean(y)),
            aes(label=group,x,y),color="black") +
  scale_alpha_identity() +
  scale_fill_manual(values = cols_vec) +
  coord_equal() +
  theme_void(base_size = 12) +
  theme(legend.position = "non",
    plot.background = element_rect(fill = "white", colour = "white"),
    panel.background = element_rect(fill = "white", colour = "white"),
    plot.margin = margin(10, 10, 10, 10))

代码问题

❝最近有朋友反馈此图运行代码有问题,但是部分朋友表示可以正常出图,小编很是疑惑;一番检查后终于是找到了问题所在,此段代码小编在一台高性能电脑上可以丝滑出图,但是放到5年前的老电脑上就会出现如下报错,果然R代码的报错真是难以让人琢磨,「也许这就是提示该换电脑了」

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 案例1
  • 案例2
  • 案例3
  • 案例4
  • 案例图
  • 加载R包
  • 导入数据
  • 数据清洗
  • 定义颜色
  • 数据可视化
  • 代码问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档