R语言笔记-1
2023-03-07 09:45:50 时间
生信技能树-数据挖掘课程笔记
数据类型
- 数值型 (numeric)
1.1
2
30
- 字符型 (character)
"a"
"bb"
"ccc"
- 逻辑型 (logical)
TRUE
T
FLASE
F
NA
变量赋值
string = "hello,world"
string <- "hello,word"
比较运算
比较运算的返回值是逻辑值TURE 、FALSE
>
大于<
小于>=
小于等于>=
大于等于==
等于!=
不等于
注意区分赋值
=
与逻辑值判断的等于==
逻辑值关系
&
有一者为FALSE即为FALSE|
有一者为TRUE即为TRUE!
TURE和FALSE相互转换
数据类型的判断和转换
#是否为数值型数据
is.numeric()
#是否为逻辑型数据
is.logical()
#是否为字符型数据
is.character()
#转换为数值型数据
as.numeric()
#转换为逻辑值数据
as.logical()
#转换为字符型
as.character()
- 字符型数据转换为数值型
NA
- 字符型数据转换为逻辑型
NA
- 数值型数据转换为逻辑型,数值非0即为
TRUE
,0则为FALSE
- 数值型数据转换为字符型
"123"
- 逻辑型数据转换为数值型,TRUE为
1
,FALSE为0
- 逻辑型数据转换为字符型
"TRUE"
or"FALSE"
R语言在不同数据转换时,尽可能保留更多的数据信息
数据结构
- 向量(vector)
- 数据框(data.frame)
- 矩阵(matrix)
- 列表(list)
向量
向量和矩阵的所有元素只能有一种数据类型 数据框的一列就是一个向量 向量内的元素可以重复
#向量的生成
c(1,2,3,4)
1:4
c("a","b","c","d")
#向量中有重复的生成
rep("a",times=3)
#向量中有规律的生成
seq(from=1,to=4,by=2)
#向量中数字的随机生成
rnorm(n=3)
#向量之间的组合
paste0(rep("a",3),1:3)
输出结果:
#向量的简单计算
x = c(1,2,3,4)
x+1
log(x) #返回以e为底x的对数(自然对数)
sqrt(x) #开平方根
#对向量中的元素进行统计的函数
max(x) #最大值
min(x) #最小值
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和
#向量可根据判断,生成逻辑型向量
x >= 2
x == 3
输出结果:
x = c(2,1,1,3,4,4)
length(x) #向量中元素的个数
unique(x) #依次将第一个出现的元素保留,后面重复的去除
duplicated(x) #依次判断元素是否重复
table(x) #统计每个元素的重复值,以表格形式呈现
class(table(x)) #table()函数输出的并非数据框或矩阵,是该函数特殊的数据类型
sort(x) #按元素数值大小依次排序,默认从小到大
sort(x,decreasing = F) #从大到小排序
输出结果:
#向量取子集
x <- 8:12
#根据逻辑值取子集
x[x==10]
x[x<12]
x[x %in% c(9,13)]
#根据位置取子集
x[4]
x[2:4]
x[c(1,5)]
x[-4]
x[-(2:4)]
#改一个元素
x[4] <- 40
x
#改多个元素
x[c(1,5)] <- c(80,20)
x
输出结果:
- 向量的位置从1开始,而不是从0开始
x[-4]
表示向量除了第4位置上的其他元素- 任何操作需要赋值才能修改变量
向量之间的操作
#向量之间的运算
x = c(1,2,3,4)
y = c(1,3,2,1)
x + y #直接进行数学计算
x == y #比较运算可以生成逻辑值
paste(x,y,sep=",") #连接两个向量,以","作为连接符
paste0(x,y) #paste0()不需要连接符,直接连接两个向量
输出结果:
#向量长度不同时,自动循环补齐
x = c(1,2,3)
y = c(1)
x == y
y == x
#循环补齐和两个向量运算顺序无关,少的向量补齐多的向量
输出结果:
#向量之间取交集、并集、差集
x = c(1,2,3,4)
y = c(1,3,3,5)
intersect(x,y) #取交集
union(x,y) #取并集,并集后去重
setdiff(x,y) #取差集,x中去除y
setdiff(y,x) #取差集,y中去除x
# %in%的使用
x %in% y #x的每个元素在y中存在吗,返回一组逻辑值
y %in% x #y的每个元素在x中存在吗,返回一组逻辑值
输出结果:
%in%
是将前者依次取出,与后者中所含有的元素进行比对,存在即为TRUE,不存在即为FALSE%in%
可用于向量取子集,取出前者向量中在后者向量中有的元素%in%
和==
之间注意区分,%in%
是依次取出,=
是一一对应
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的