R语言——数据操作

Posted by Longfei Han on December 16, 2014

预计阅读时间: 10分钟

总计阅读次数:

数据操作

上面一部分介绍了R中一些变量类型的操作,一般来讲,当R运行时,所有变量,数据,函数及结果都以对象(objects)的形式存在计算机的活动内存中,我们可以通过用一些运算符(如算术,逻辑,比较等)和一些函数(其本身也是对象)来对这些对象进行操作。但是如果该对象已经存在,那么它以前的值将会自动被新值冲掉。对于数据操作而言,常用指令有:

1. 描述统计函数

str()/summary()/typeof()等:summary()函数是一个用于描述统计的函数,它可以从大量数据中压缩提取基本信息,或者用来给出各种模型的拟合函数结果的基本信息。str()函数也是一个用于描述变量信息的函数,其可以返回对象的结构或内容,也可用于查看R中常用的内置函数的参数信息。个人认为str()函数还是最为好用的。

#R中常用的描述统计函数
summary(Lst)
#对矩阵各列信息的基本统计描述
summary(matrix(1:15, nrow=5, ncol=3, dim=list(c(1,2,3,4,5), c("x","y","z"))))
#变量基本信息描述
str(Lst) #names(Lst); typeof(Lst); class(Lst); mode(Lst)
#常用函数基本信息描述
str(lm)

在R中输出结果如下图所示:

描述统计函数

2. 加载与释放

attach()函数可以使列表或者数据框的分量可以通过它们的名字直接调用,该函数通过将数据框或者列表添加到R的搜索路径中,并当R在遇到一个变量名检查搜索路径中的数据框或者列表时,以定位到这个变量。该函数可以用于解除用$ 符号访问对象不方便的问题。这种调用是暂时性的,没有必要每次都显式的引用列表名字。而detach()函数可以将数据框从搜索路径中移除。with()函数则是对函数内的变量执行上述过程,用于解决当名称相同的对象不止一个时产生的冲突问题。attach()函数通常是将数据框绑定在搜索路径的位置2(position 2)上。如果位置1没有相同名称的变量,那么该数据框的变量名称对应的变量将直接被访问;相反,如果存在,则任何操作仅是针对搜索路径位置1工作空间中的变量。这时要对数据框中的变量进行操作,最好还是通过$符号或者with()函数。

 #attach函数
str(iris)
Species
iris$Species
#加载变量名称用于搜索变量名,代替$符号
attach(iris)
Species
detach(iris)
Species
#with函数
data=data.frame(c1=c(1,2,3,4),c2=c(5,6,7,8))
attach(data)
##当定义一个新的变量c1时,会产生冲突
c1 = 1
##data$c1的值不会被改变,对原数据框的数据未产生影响
data$c1
c1
##使用with()函数解决冲突问题
summary(c1)
with(data, summary(c1))

在R中输出结果如下图所示:

attach函数

with函数

3. 嵌套函数

by()以及apply()函数的变体均属于嵌套函数,可用于根据分类变量分组统计目标变量的信息。

#by函数和tapply等嵌套函数
attach(iris)
#根据Species变量分组统计Sepal.Length变量的均值
by(Sepal.Length, Species, mean)
tapply(Sepal.Length,Species, mean)
detach(iris)

在R中输出结果如下图所示:

by函数

4. 对象查询

ls()函数是列出当然目录变量,其结果是一个字符串向量。如果没有定义的赋值变量,则会返回一个空向量。rm()函数可以删除用户中已定义的变量,但该函数删除的变量无法撤销,也可以传入多个变量来进行删除。

#ls函数和rm函数
ls()
ls.str()
rm(c1) #删除变量c1
ls()

在R中输出结果如下图所示:

ls函数


blog comments powered by Disqus