返回顶部
R

RR语言避坑指南

Avoid common R mistakes — vectorization traps, NA propagation, factor surprises, and indexing gotchas.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
874
下载量
免费
免费
3
收藏
概述
安装方式
版本历史

R

向量化

  • - 循环速度慢——请使用 apply()、lapply()、sapply() 或 purrr::map()
  • 向量化函数作用于整个向量——用 sum(x) 而非 for (i in x) total <- total + i
  • ifelse() 是向量化的——if 不是,对向量条件请使用 ifelse()
  • 列操作比行操作更快——R 按列优先存储

索引陷阱

  • - R 从 1 开始索引——第一个元素是 x[1],而非 x[0]
  • x[0] 返回空向量——不会报错,但会引发隐蔽错误
  • 负索引表示排除——x[-1] 移除第一个元素
  • [[ 提取单个元素——[ 返回子集(列表仍保持列表形式)
  • df[, 1] 降级为向量——使用 df[, 1, drop = FALSE] 保持数据框结构

NA 处理

  • - NA 会传播——1 + NA 结果为 NA,NA == NA 结果为 NA
  • 使用 is.na() 进行检查——而非 x == NA
  • 大多数函数需要设置 na.rm = TRUE——若存在任何 NA,mean(x) 会返回 NA
  • na.omit() 会移除包含任何 NA 的行——可能导致意外丢失数据
  • complete.cases() 返回逻辑向量——标记不含 NA 的行

因子陷阱

  • - 旧版 R 默认将字符串转换为因子——请使用 stringsAsFactors = FALSE 或新版 R
  • levels() 显示类别——但因子值在内部以整数形式存储
  • 添加不在 levels 中的新值会得到 NA——使用 factor(x, levels = c(old, new))
  • as.numeric(factor) 返回层级索引——获取实际值请用 as.numeric(as.character(factor))
  • 删除未使用的层级:droplevels()——或重新使用 factor()

循环利用

  • - 较短的向量会被循环利用以匹配较长向量——c(1,2,3) + c(10,20) 得到 11, 22, 13
  • 长度不成倍数时不会报错——仅给出警告,容易被忽略
  • 单值有意循环利用——x + 1 对所有元素加 1

数据框 vs Tibble

  • - Tibble 不会将字符串转换为因子——默认更安全
  • Tibble 不会降维——df[, 1] 保持 tibble 格式
  • Tibble 打印更友好——显示类型,不会刷屏
  • 使用 as_tibble() 进行转换——来自 tibble 或 dplyr 包

赋值

  • - <- 是 R 的习惯用法——= 也可用但风格指南中避免使用
  • <<- 赋值到父环境——全局赋值,通常是个错误
  • -> 右赋值存在——很少使用,容易混淆

作用域

  • - 函数会在父环境中查找变量——可能意外使用全局变量
  • 局部变量会遮蔽全局变量——同名变量隐藏外部变量
  • local() 创建隔离作用域——变量不会泄露到外部

常见错误

  • - T 和 F 可能被覆盖——始终使用 TRUE 和 FALSE
  • 1:length(x) 在 x 为空时出错——得到 c(1, 0),请使用 seq_along(x)
  • sample(5) 与 sample(c(5)) 不同——前者给出 1:5 的排列
  • 字符串分割:strsplit() 返回列表——即使只处理单个字符串

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 r-1776329292 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 r-1776329292 技能

通过命令行安装

skillhub install r-1776329292

下载

⬇ 下载 R v1.0.0(免费)

文件大小: 1.99 KB | 发布时间: 2026-4-17 14:50

v1.0.0 最新 2026-4-17 14:50
Initial release

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部