R语言数据类型基础1 数值型、逻辑型与文本型

R语言数据类型基础1 数值型、逻辑型与文本型

我看的R语言教材是李东风老师写的,已经跟着写了一周的代码了,但是可能是缺乏练习和总结,我相当于是打了遍字而已。所以现在又回头总结一下,里面一些太过细节的操作我就不再赘述了,只想在此处归纳总结一些最基础和最常用的操作。

众所周知 ,R语言是一个针对向量进行操作的语言,首先说一下R语言中怎么定义一个向量。
最简单的,只需要利用c()函数即可,如下所示:

m1<-c(1,2,3)#生成了一个数值型向量
m2<-c("你好","Hello")#生成了一个字符型向量

接下来,针对不同的向量类型,给出一些常用的操作说明。

数值型向量

基本的一些操作

length(x)#这个是用来求向量x的长度
numeric(x)#生成一个长度为x,但每个元素都是0的数值型向量
+ - * / ^ #分别代表加减乘除和乘方

值得注意的点,在R语言中,向量和向量可以进行运算
但是在用如加减乘除等运算时,都是对应元素进行加减乘除,如果想做如内积、外积运算时,得确定一下相应的运算符

另外一些操作

%/% #这是整除符号
%% #这是求余符号
sort() #进行排序
rev() #排列次序反转
order() #返回排序后的**下标**(这个好像也不怎么用?)

基本的一些统计函数

这里的函数可太基本了,感觉哪个语言可能都自带了
sum(求和)
mean(求平均值)
var(求样本方差)
sd(求样本标准差),
min(求最小值)
max(求最大值)
range(求最小值和最大值)
cumprod(累乘)
cumsum(累加)

除了对已经有的向量进行操作,我们当然还得学会如何创造生成一些向量

在这里就记住一个seq得了,当然还有rep,但是也不怎么用到
seq(x,y,by=2)#这就是生成从x到y的序列,步长为2
seq(x,y,length.out=100)#这就是生成从x到y的序列,序列的长度为100
相当于一个是按照步长生成,一个是先确定了长度再进行生成

数值向量还包括了复数向量,但是在此就不赘述了(毕竟也不是很能用到?)

逻辑型向量

逻辑型的取值只有两种,即TRUE和FALSE,当然也可以简写为T和F.
除了这两种之外,其实还可以算有缺失值,在R语言中,我们用NA来表示缺失值。
我们可以如下来得到一个逻辑型向量

m<-c(1,2,3)
a1<-m>=2

在这样一段程序运行完后,我们就得到了一个逻辑型向量a1,它的取值是(FALSE,TRUE,TRUE)
(我发现我还不太会将R语言的结果也放出来,这是不是要用R markdown啊?等我学会了之后写博客肯定会好看且清楚很多)

我觉得还比较有用的函数就是is.na(x),因为经常会遇见,其作用是判断x向量是否为缺失值。大家都知道,R语言是一个向量型语言,故而它实际上会对x这个向量中的每一个元素进行一下验证。看看里面每一个元素是否是缺失的,然后会返还一个逻辑值,也就是T或者F。
类似的还有:

is.na()#是否是缺失值
is.finite()#是否是Inf值(我到现在学R 还没见过Inf值诶)

逻辑型还有一些其他操作,但是我觉得目前需要消化经常用到的就是这些了。

文本型向量

文本型向量也就是字符型向量,在这里我觉得值得去记忆,最基础的就是取子串、类型转换,不过还需要掌握一下paste()函数和字符串长度。
直接放上代码吧
paste()函数

paste(c("ab","cd"),c("12","34"))#将两个字符串连接,中间由空格分隔
#大家要记住,R语言是向量型的语言,将这两个字符型向量用paste连接后,居然得到的是c("ab 12","cd 34")。这不可不谓之神奇,但我有时候会觉得这个逻辑严谨吗,我总害怕R语言这个特性会在编程时不那么严谨..(我有发现过,但是我感觉是我菜,所以我不说)
还可以有
paste(c("ab","cd"),c("12","34"),sep='')#这样就不会有空格分开了,会连接的非常紧密,另外这是sep不是seq,seq是用来生成向量的哈
另外如果只想对一个字符型向量中的各个元素进行连接呢?
paste(c("ab","cd"),collapse="")#利用collapse参数即可,不用的话对这个字符型向量将不造成任何影响

取子串的操作

substr(x, start, stop)#这是对一个字符串进行操作,而不是对一个字符串向量进行操作噢
#其含义是指,取出x这个字符串的从第start个位置一直取到stop位置。
而substr(x,start,stop)中的x如果是个向量的话,那么很显然,我们是对x的每个元素都进行这种取子串的操作

类型转换

as.numeric()#转换成数值型
as.character()#转换成字符型

还有一个功能,个人感觉比较有用,即子串替换
利用gsub()函数即可实现

x<-"1;3;5;7,9"#生成了一个字符串
gsub(";",",",x,fixed=TRUE)#将分号换成了逗号,不过这个fixed参数是什么意思我也还不知道。

以上就是最基础的三种数据类型的简单操作啦!
总结一下就是数值型我们有排序、简单统计函数、生成序列,逻辑型有判断,文本型有替换子串、取子串、转换类型、连接

这些都不是很难,我感觉真正需要再总结一下的应该是R语言中的各个数据结构。
比如列表list,数据框data.frame(或者说tibble),因子factor这一些。

如果有大佬愿意带我学习的话就好了

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值