在线R - IDE、编辑器、编译器、解释器

使用R官方WebAssembly构建webR在线运行R脚本:统计、数据框、线性模型和基础图形绘制,全部在浏览器中完成。

R 4.6 (webR 0.6) · 在浏览器中运行,代码绝不会发送到我们的服务器。
main.RR
输出

            
        
Ctrl/⌘ + Enter 运行

在线 R 编译器的功能(IDE、编辑器 & 解释器)

免费在线编写、运行和测试 R 代码。本页面集在线 R IDE、代码编辑器、编译器和解释器于一体:输入代码,点击“运行”,立即查看输出。一切都在浏览器中运行,无需安装,也无需注册账号。

  • 即时运行代码: R 4.6 (webR 0.6),首次加载后一秒内即可输出结果。
  • 代码编辑器: 语法高亮、行号、括号匹配和自动补全括号。
  • 清晰的错误提示: 错误信息和警告会显示在输出面板中,与在您自己的电脑上一样。
  • 全屏: Ctrl/⌘ + Shift + F,可调节字号,支持并排或堆叠布局,面板大小可调。
  • 自动保存: 代码保存在您的浏览器中;可一键下载为 main.R 或复制。
  • 放心尝试: 时间限制和“停止”按钮可终止无限循环。
  • 私密: R 运行时在您的设备上运行,代码绝不会被上传。
  • 深色模式 以及键盘快捷键:Ctrl/⌘ + Enter 运行代码。
  • 免费: 无需注册,不限使用次数。

学习其他编程语言

R语言在线编译器使用方法

  1. 在编辑器中编写或粘贴 R 脚本。点击重置示例可恢复初始脚本,它会汇总一个向量、拟合一个线性模型并绘制图表。
  2. 点击运行,或使用 Ctrl + Enter(Mac 上为 ⌘ + Enter)。整个脚本会从头到尾运行。
  3. 在输出面板中查看结果。文本的显示方式与在 R 控制台中完全一样,您绘制的任何图表会以图片形式显示在其下方。
  4. 选择 5 秒、15 秒或 60 秒的时间限制。运行时间超出限制的脚本会被停止,也可随时点击停止中断。

首次运行时需要下载 R 本身,大小约 25 MB,请稍等几秒。之后再访问会从浏览器缓存中加载。可用复制或下载 main.R 来保存您的工作,用 A− 和 A+ 调整字号,用布局按钮在并排与上下堆叠的面板之间切换,当长脚本及其图表需要更大空间时,请点击全屏(Ctrl/⌘ + Shift + F,按 Esc 退出)。

R 完全在您的浏览器中运行。您的脚本和数据不会发送到任何服务器,编辑器只会把您上次的脚本保存在浏览器的本地存储中。

支持的功能

本页通过 webR 0.6(R 的官方 WebAssembly 版本)运行 R 4.6.0。它就是真正的 R 解释器,因此函数、向量、因子、列表和数据框的行为与在 RStudio 或 R 控制台中一致。

  • 控制台风格的输出:单独一行的值会自动打印,就像在 > 提示符后输入一样。print()、cat() 和 message() 同样可用。
  • 错误和警告(来自 stop()、warning() 以及 R 本身)会显示在输出中。
  • 基础绘图:plot()、hist()、barplot()、boxplot()、lines()、abline()、legend() 等。每幅图都会以 720×450 的图片显示在输出面板中。
  • 基础 R 以及 webR 自带的推荐包,包括 stats 函数(lm()、t.test()、cor()、quantile())和 mtcars、iris 等内置数据集。

限制:

  • 本页不支持 install.packages(),因此无法使用 CRAN 上的包,例如 ggplot2 或 dplyr。请只使用基础 R。
  • 不支持交互式输入。无法从键盘使用 readline() 和 scan(),请在脚本中定义数据。
  • 无法访问您电脑上的文件。请使用 read.csv(text = "...") 加载粘贴在脚本中的小型 CSV。

R 语言简明示例

# Vectors are the basic unit, and operations work element by element
x <- c(4, 8, 15, 16, 23, 42)
x * 2
mean(x); median(x)
x[x > 10]                      # logical indexing

# Data frames hold tables
df <- data.frame(
  hours = c(1, 2, 3, 4, 5, 6),
  score = c(52, 58, 65, 70, 74, 83)
)
str(df)

# Fit a linear model and inspect it
fit <- lm(score ~ hours, data = df)
summary(fit)
predict(fit, newdata = data.frame(hours = 7))

# Plot the data and the fitted line
plot(df$hours, df$score, pch = 19, xlab = "Hours studied", ylab = "Score")
abline(fit, col = "red", lwd = 2)

summary(fit) 会打印系数、标准误差和 p 值,以及 R 平方。abline(fit) 调用会在散点图上叠加画出回归线,图片会紧接着文本输出之后显示。

使用技巧与常见误区

  • R 的索引从 1 开始,x[0] 不会报错,而是悄悄返回一个空向量。
  • 在循环或函数内部,值不会自动打印,请用 print() 包裹它们。
  • 赋值用 <-,比较用 ==。= 在顶层也可以赋值,但混用两种风格会让脚本更难阅读。
  • 缺失值会传播:mean(c(1, NA, 3)) 的结果是 NA。传入 na.rm = TRUE 可忽略它们。
  • 使用随机数的函数,如 rnorm() 和 sample(),每次运行结果都不同。请先调用 set.seed(42),以获得可重复的输出。
提示:若要在一张图片中并排绘制多幅图,请在绘图命令之前调用 par(mfrow = c(1, 2))。

常见问题

这是哪个版本的 R?

R 4.6.0,运行在 webR 0.6 上。运行 R.version.string 即可确认。

可以使用 ggplot2、dplyr 或 tidyverse 吗?

不可以。本页不支持安装包。基础 R 已涵盖数据框、聚合(aggregate()、tapply())、建模和绘图,足以应付大多数练习。

我的图表显示在哪里?

显示在输出面板中文本输出之后,以 720×450 的图片呈现。每次新的高级绘图调用,如 plot() 或 hist(),都会开始一幅新图。

这里可以运行其他数据语言吗?

可以试试 Python在线编译器(支持 NumPy 和 pandas)或用于查询的 SQL在线编译器。所有选项都列在在线编译器中。

更新于

已复制到剪贴板