1-4-3数据类型和向量的创建
2021-10-11 本文已影响0人
小胡同学ime
正确打开Rstudio的方式
新建一个 R project
- 认识 R studio 的界面 Script Environment Files
- 调一下皮肤 Global options > Appearance
- 人机互动 控制台 session
- 快速退出 Ctrl + Q
- 脚本
- 脚本运行 run OR Ctrl + Enter (win10) / Command + Enter (Max)
- 脚本注释 #
- 脚本保存、关闭,包括各种文件的保存和读取,都在 R project 位置所在文件夹 进行
理解一段代码
x1 = read.csv("x.csv") # 读取csv
head(x1) # 默认生成查看前6行
pdf("x.pdf") # 新建一个名为“x”的 pdf
plot(x1$len,col = factor(x1$dose)) # 画个简单的散点图
title("Have a try") # 加个标题
dev.off() # 结束
write.table(x1,"x.txt") # 保存成txt
R语言的几类命令响应
- 输出结果
- 报错:error > 检查环境、命令,修正后重新运行
- 警告:warning > 忽略
- “没反应” > 出现 “>" 后继续后续操作即可
- 命令正在运行 > 等
- 命令不完整 > 写完命令 / Esc 退出重新写
- 出现提示信息 > 检查提示信息里面是否有 Error, 没有的话可以忽略
- 进一步选择 > 进行选择,不然无法进行下一步
数据类型
- 数值型:1.3, 2
- 字符型:"a", "nn"
- 逻辑型: T, F, NA
class() # 判断数据类型
>class("a")
[1] "character"
常见报错:引号、拼写错误、大小写
关注逻辑值数据
-
比较运算 的结果是逻辑值
eg. >, <, <=, >=, ==(是否相等), !=(是否不相等) -
逻辑运算 多个逻辑条件的连接与 &、或|(shift+enter上面那个键)、非!
eg. !3 == 4 TRUE
数据类型的判断与转换
is族函数,判断,返回值为 TRUE 或 FALSE
is.numeric()#是否为数值型
is.logical()#是否为逻辑值
is.charactor()#是否为字符型
as族函数实现数据类型之间的转换
as.numeric()
as.character()
as.logical()
> as.numeric("4")
[1] 4
多个数据如何组织
数据结构
切换 Rproject
先
保存、关闭 脚本、变量和图片
再
file > open project
有弹窗选择 don't save/no
保存有用的文件,不要让工作空间变得臃肿
脚本打开是乱码的解决方案
file > Reopen with Encoding > UTF-8 > OK
向量的生成
- 用c() 逐一放到一起
c(2,5,6,2,9)
c("a", "f", "md", "b")
- 连续的数字用冒号 ":"
1:5
- 有重复的用rep(), 有规律的序列用seq(), 随机数用rnorm()
rep("gene", times = 3)
seq(from = 3, to = 21, by = 3)#3 6 9 12 15 18 21
rnorm(n=3)#生成3个随机数
- 通过组合,产生更为复杂的向量
paste0(rep("gene", times =3), 1:3)#区别在于两数据直接连接,后者不加设置会自动出现空格
> paste0(rep("gene",times=3),1:3)
[1] "gene1" "gene2" "gene3"
> paste(rep("gene",times=3),1:3)
[1] "gene 1" "gene 2" "gene 3"
作业
image- 强行合并数据类型:字符+其他—都变成字符,逻辑+数值—逻辑会转换成数值, NA保留
> c("a","b",1,2,3)
[1] "a" "b" "1" "2" "3"
> c(1,2,3,T,T,F)
[1] 1 2 3 1 1 0
- seq(4, 30, 4)
- paste0(rep("sample"), seq(4,30,4))
最好的方法是
x=seq(from=4,to=30,by-=4)
paste0(rep("sample",times=length(x)),x)