R语言基础学习-02 (此语言用途小众 用于数学 生物领域 基因分析)

变量

R 语言的有效的变量名称由字母,数字以及点号 . 或下划线 _ 组成。

变量名称以字母或点开头。

变量名是否正确原因
var_name2.正确字符开头,并由字母、数字、下划线和点号组成
var_name%错误% 是非法字符
2var_name错误不能数字开头

.var_name,

var.name

正确可以 . 号开头,但是要注意 . 号开头后面不能跟着数字
.2var_name错误. 号开头后面不能跟着数字
_var_name错误不能以下划线 _ 开头

变量赋值

最新版本的 R 语言的赋值可以使用左箭头 <-、等号 = 、右箭头 -> 赋值:

实例

# 使用等号 = 号赋值
> var.1 = c(0,1,2,3)          
> print(var.1)
[1] 0 1 2 3

# 使用左箭头 <-赋值
> var.2 <- c("learn","R")  
> print(var.2)
[1] "learn" "R"
   
# 使用右箭头 -> 赋值
> c(TRUE,1) -> var.3
> print(var.3)
[1] 1 1          

查看已定义的变量可以使用 ls() 函数:

实例

> print(ls())
[1] "var.1" "var.2" "var.3"

删除变量可以使用 rm() 函数:

实例

> rm(var.3)
> print(ls())
[1] "var.1" "var.2"
>

上一章节中我们已经学会来如何安装 R 的编程环境,接下来我们将为大家介绍 R 语言的交互式编程与文件脚本编程。

交互式编程

我们只需要在命令行中执行 R 命令就可以进入交互式的编程窗口:

R

执行完这个命令后会调出 R 语言的解释器,我们在 > 符后面输入代码即可。

交互式命令可以通过输入 q() 来退出:

> q()
Save workspace image? [y/n/c]: y

文件脚本

R 语言文件后缀为 .R。

接下来我们创建一个 runoob-test.R 文件:代码如下:

runoob-test.R 文件

myString <- "RUNOOB"

print ( myString )

接下来我们在命令行窗口使用 Rscript 来执行该脚本:

Rscript runoob-test.R

输出结果如下:

[1] "RUNOOB"


输入输出

print() 输出

print() 是 R 语言的输出函数。

和其他编程语言一样,R 语言支持数字、字符等输出。

输出的语句十分简单:

print("RUNOOB")
print(123)
print(3e2)

执行结果:

[1] "RUNOOB"
[1] 123
[1] 300

R 语言与 node.js 和 Python 一样,是解释型的语言,所以我们往往可以像使用命令行一样使用 R 语言。

如果我们在一行上进输入一个值,那么 R 也会把它直接标准化输出:

> 5e-2
[1] 0.05

cat() 函数

如果需要输出结果的拼接,我们可以使用 cat() 函数:

实例

> cat(1, "加", 1, "等于", 2, '\n')
1 加 1 等于 2

cat() 函数会在每两个拼接元素之间自动加上空格。

输出内容到文件

R 语言输出到文件的方法十分多样,而且很方便。

cat() 函数支持直接输出结果到文件:

cat("RUNOOB", file="/Users/runoob/runoob-test/r_test.txt")

这个语句不会在控制台产生结果,而是把 "RUNOOB" 输出到 "/Users/runoob/runoob-test/r_test.txt" 文件中去。

file 参数可以是绝对路径或相对路径,建议使用绝对路径,Windows 路径格式为 D:\\r_test.txt。

cat("RUNOOB", file="D:\\r_test.txt")

注意:这个操作是"覆盖写入"操作,请谨慎使用,因为它会将输出文件的原有数据清除。如果想"追加写入",请不要忘记设置 append 参数:

cat("GOOGLE", file="/Users/runoob/runoob-test/r_test.txt", append=TRUE)

执行以上代码后,打开 r_test.txt 文件内容如下:

RUNOOBGOOGLE

sink()

sink() 函数可以把控制台输出的文字直接输出到文件中去:

sink("/Users/runoob/runoob-test/r_test.txt")

这条语句执行以后,任何控制台上的输出都会被写入到 "/Users/runoob/runoob-test/r_test.txt" 文件中去,控制台将不会显示输出。

注意:这个操作也是"覆盖写入"操作,会直接清除原有的文件内容。

如果我们依然像保留控制台的输出,可以设置 split 属性:

sink("/Users/runoob/runoob-test/r_test.txt", split=TRUE)

如果想取消输出到文件,可以调用无参数的 sink :

sink()

实例

sink("r_test.txt", split=TRUE)  # 控制台同样输出
for (i in 1:5)
    print(i)
sink()   # 取消输出到文件

sink("r_test.txt", append=TRUE) # 控制台不输出,追加写入文件
print("RUNOOB")

执行以上代码,当前目录下会生存一个 r_test.txt 文件,打开文件内容如下:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] "RUNOOB"

控制台输出为:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

文字输入

可能我们会联想到 C 语言中的 scanf 、Java 中的 java.util.Scanner,如果你学习过 Python 可能对 input() 函数更熟悉。但是 R 语言本身作为一种解释型的语言,更类似于一些终端脚本语言(比如 bash 或者 PowerShell),这些语言是基于命令系统的,本身就需要输入和输出且不适合开发面向用户的应用程序(因为他们本身就是给最终用户使用的)。因此 R 语言没有专门再从控制台读取的函数,文字输入在 R 的使用中一直在进行。

从文件读入文字

R 语言中有丰富的文件读取函数,但是如果纯粹的想将某个文件中的内容读取为字符串,可以使用 readLines 函数:

readLines("/Users/runoob/runoob-test/r_test.txt")

执行结果:

[1] "RUNOOBGOOGLE"

读取结果是两个字符串,分别是所读取的文件包含的两行内容。

注意:所读取的文本文件每一行 (包括最后一行) 的结束必须有换行符,否则会报错。

其他方式

除了文字的简单输入输出以外,R 还提供了很多输入数据和输出数据的方法,R 语言最方便的地方就是可以将数据结构直接保存到文件中去,而且支持保存为 CSV、Excel 表格等形式,并且支持直接地读取。这对于数学研究者来说无疑是非常方便的。但是这些功能对于 R 语言的学习影响不大,我们将在之后的章节提到。

工作目录

对于文件操作,我们需要设置文件的路径,R 语言可以通过以下两个行数来获取和设置当前的工作目录:

  • getwd() : 获取当前工作目录
  • setwd() : 设置当前工作目录

实例

# 当前工作目录
print(getwd())

# 设置当前工作目录
setwd("/Users/runoob/runoob-test2")

# 查看当前工作目录
print(getwd())

执行以上代码输出结果为:

[1] "/Users/runoob/runoob-test"
[1] "/Users/tianqixin/runoob-test2"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/444267.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【FFmpeg】ffplay 命令行参数 ① ( 设置播放分辨率 | 禁用 音频 / 视频 / 字幕 选项 )

文章目录 一、ffplay 命令行参数 - 设置播放分辨率1、强制设置通用播放分辨率 -x -y 参数2、命令行示例 - 正常播放视频3、命令行示例 - 强制设置播放分辨率4、设置 YUV 播放分辨率 -video_size 和 像素设置 -pixel_format5、全屏播放 -fs 参数 二、ffplay 命令行参数 - 禁用 音…

阿赵UE学习笔记——14、LOD

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的用法。这次看看虚幻引擎的Level Of Detail(LOD)的用法。 一、测试场景准备 用植物系统&#xff0c;在地形上面刷了好多草&#xff1a; 这个时候看一下网格&#xff0c;会发现网格比较多和密集。 …

如何更改Outlook阅读邮件时的默认字体?

如果收到的邮件中未指定字体&#xff0c;outlook默认使用宋体显示。 如果觉得不好看&#xff0c;可以进行更改。但不是在outlook中更改&#xff0c;outlook中只是修改编辑器中的字体&#xff0c;和纯文本邮件浏览的字体&#xff0c;不能更改未指定字体的HTML邮件的显示字体。 …

Picturesocial | 只要 5 分钟,发现容器编排的秘密武器!

在上一篇文章《Picturesocial | 开发实践&#xff1a;如何在 15 分钟内将应用容器化》&#xff0c;我们讨论了容器以及容器化应用程序所需的步骤。在不考虑将 container 部署到哪里的情况下创建 container&#xff0c;就像把家放在漂浮在海中的货运集装箱里一样&#xff0c;听起…

adb 无线连接 操作Android设备

最近集五福活动比较热门 可以用这个工具 用自己擅长的语言写一个循环程序 运行起来就可以 自动帮我们 看视频得福卡了 很方便 while (true) {sleep(mt_rand(15, 25));system(adb shell input swipe 500 2000 500 1000 100); } 1. 首先下载 安卓开发工具 adb adb网盘链接 链接…

Vue学习笔记(二)快速入门

Vue学习笔记&#xff08;二&#xff09;快速入门 vue小试牛刀 hello-vue3.html <body><div id"app"><h1>{{msg}}</h1></div><script type"module">import {createApp} from https://unpkg.com/vue3/dist/vue.esm-b…

AI赋能编程 | 自动化工具助力高效办公

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言泡泡AI工具卡片思维导图Markdown编辑器 其他工具文件免费处理工具结语 合集…

web应用课——(第四讲:中期项目——拳皇)

代码AC Git地址&#xff1a;拳皇——AC Git链接

【51单片机系列】中断优先级介绍及使用

文章来源&#xff1a;《51单片机原理及应用&#xff08;第3版&#xff09;》5.4节。 51单片机采用了自然优先级和人工设置高、低优先级的策略。 当CPU处理低优先级中断&#xff0c;又发生更高级中断时&#xff0c;此时中断处理过程如下图所示。 一个正在执行的低优先级中断服…

AIOps案例 | 大型物流公司的多数据源统一监控及告警压缩处理

本文作者&#xff1a;擎创夏洛克AIOps &#xff08;内容节选&#xff09; 一说起智能运维在国内的应用&#xff0c;大量的客户都分布于金融行业。因为金融业数据量巨大、对运维故障容忍度更低&#xff0c;所以在智能运维上的投入会更大&#xff0c;应用水平也更高。 但越来越多…

黑马程序员前端web入门:新浪新闻

黑马程序员前端web入门&#xff1a;新浪新闻 几点学习到的&#xff1a; 设置li无圆点: list-style: none;设置a无下划线&#xff1a;text-decoration: none;a属于行内元素&#xff0c;高度hegiht不起作用&#xff0c;可以设置 display: block; 把它变成块元素。此时&#xff0c…

机器学习数学基础

机器学习基础 1、标量、向量、矩阵、张量2、概率函数、概率分布、概率密度、分布函数3、向量的线性相关性4、最大似然估计5、正态分布(高斯分布)6、向量的外积(叉积)7、向量的内积(点积)8、超平面(H)1、标量、向量、矩阵、张量 标量、向量、矩阵和张量是线性代数中不同…