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

先扯一下淡

我本科是数学系的,然后学的语言是Matlab,mathematica等等,当然或多或少也自学了点Python(毕竟Python实在是太火了,所以肯定还是去自学了一下)。

不过由于自己惫懒的一批,这几种语言其实都没太学会,也就会做点简单的数值计算和制图,应付一下数学建模诸如此类的比赛。

之后从数学系保送到了统计系硕博连读,我寻思无论是数学还是统计,其实外边人都可能觉得这专业学生编程至少还是会的吧,而我数学系的mathematica和matla都b没怎么整明白,而别的语言也不太好(我可能比较自信的是ϵδ语言?),故而还是应该确定一门语言好好深入一下。

在确定语言的时候,我当然知道Python是现在的主流,并且越来越流行,但是我在转到统计系后看了一些老师自己的博客,包括在统计之都里说话的那些人,哇,发现用R语言这里面的人真的太有意思了,讲话又好听水平又高,简直让我心神往之,有时候在下决定的时候肯定还是会被一些有热情的人所感染,所以我想先把R语言给好好掌握了。

当然,也由于统计系的看家本领是R语言,作为一个现在学统计的人,怎么能不会R呢?(不过我在刚入学那阵思考了许久,最后跳到了偏理论的老师这,尽管编程要求并不是很高,但是我还是挺愿意学一下R的,就算当作个人兴趣爱好我觉得也不错?所以这个博客的建立的目的也是这样,希望能够把自己学R以及课程学习的一些东西分享和记录下来,在微博什么的地方,写东西好像都不如这个方便,而且很容易挨骂,自闭)。

希望自己学了一段时间后,能去统计之都里问出点有水平的问题,目前打算就在这里自娱自乐了。


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这一些。

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

posted @   T_zs  阅读(221)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示