R与统计:文件读取、变量类型和简单统计函数

R 是⼀个免费的用于统计计算的软件。在R中可以直接输入语句,让R返回计算结果;也可以把命令语句存储到⽂件中,有需要时再调用。
#调用命令⽂件:
source('XXXX')

R有⼀个默认路径,以文件作为参数时如果没有带上路径的话,就会默认从这个路径下存取。如果不使用默认路径存储,又不想要每次都输入长长的路径名的话,可以修改存取路径,这样之后会默认在这个路径下存取文件。
#修改存取路径
setwd('XXXXXXXX')

R可以读⼊许多不同格式的⽂件,包括.txt,.dat,.csv,.sav等。
#读入txt
read.table('XXX.txt', header = TRUE)
#读入SPSS文件
library(foreign)
data = read.spss('XXX.sav',to.data.frame=TRUE)
#如果read.spss遇到问题,可以使用:
library(memisc)
data = as.data.set(spss.system.file('XXX.sav'))
#读入csv文件
data = read.csv('XXX.csv')

R中有丰富的程序包,可以通过安装和调用程序包来使用其中的函数。
#安装程序包
install.packages('XXXX')
#调用程序包
library(XXXX)

R中的函数都有说明文档,会给出函数包含的所有参数、每个参数的解释、函数返回的内容及其解释、参考⽂献和示例。可以通过输入?+函数名或者使用help()函数来查阅说明文档。

? rnorm
help(rnorm)
help(lda,package = 'MASS')

矩阵(matrix):矩阵是一个二维的数组(array,一维的数组是向量),每列需要是相同的数据类型。

#用函数c()可以创建一个向量 
v = c(11,22,22,33)
#用函数matrix()可以创建一个矩阵(默认按列排序)
m = matrix(c(22,33,23,23),nrow = 2,ncol=2)
#想要按行排序的话
m = matrix(c(125, 160, 183, 137),nrow = 2,ncol=2,byrow = TRUE)
#定义空矩阵
m = matrix(NA, nrow =3 , ncol=2 )

对向量、矩阵进行四则运算的时候,是分别对其中的每个元素进行的。

#返回向量的长度
length(v)
#返回矩阵的维度
dim(m)
#返回矩阵的某行某列
m[1,]#第一行
m[,2]#第二列
m[1,2]#第一行第二列

常用的生成向量或矩阵的命令:

|命令|解释|
|--||
|rep(ns,b)|ns 是数列;b 如果是数值,则重复ns b 次,如果b 是数列(长度需与ns 相同),那么ns 中的每个元素重复b 中相应位置的元素的次数|
|seq(low,up,by=sep)|生成等差数列,low 是首项,up 是末项,sep 为公差|
|low:up|形成公差为1 的等差数列,low 是起点,up 是终点|
|sample(ns,n)|随机抽样,从ns 中随机抽取样本量为n 的样本|

数据框(dataframe):数据框是另一种集合数据的形式,每列代表一个变量,不同列的数据类型不必相同。数据框与矩阵非常相似,仅在某些函数或运算中跟矩阵有所不同。可以使用as.data.frame() 或as.matrix() 进行转换。

#定义数据框
d = data.frame(x = 1, y = 1:10, z = sample(1:20,10))
#按条件读取数据框中的数据
pd = subset(d,z<10)
#把数据框中的变量变为独立变量
attach(d)
#访问数据框中的数据
d[[,1]]
d[["x"]]
d$x

列表(list):当不同列的数据长度不⼀致的时候,就需要使用列表存储数据。每个元素的类型可以不同,元素本身可以允许是更复杂的数据类型,甚至可以是一个列表。

#定义列表
s = list(a = 1, b=1:3, c=sample(1:100,10))
#返回列表中的某个元素
s[[,3]]
s[["c"]]
s$c
#返回列表的某一部分(类型仍为列表)
s[,3]
#返回某个元素的某个值
s[[,3]][2]

描述性统计常用函数

命令 解释
summary(x) 返回数据或变量的五数概括+均值
table(x) 返回分类变量各个取值的频数
mean(x);sd(x) 求变量x 的均值或标准差
quantile(x) 返回变量的常用的百分位数
cor(x);cov(x) 计算矩阵的相关或协⽅差;cor(x,y)则返回x和y的相关系数

作图常用函数

命令 解释
barplot(x) 条形图;x 是向量或者矩阵
boxplot(x) 箱图;x 是向量或者矩阵
hist(x) 直⽅图;x 是向量
plot(x,y) 散点图
abline(a=,b=) 在原有图上叠加⼀条直线:截距为a,斜率为b
abline(v=) 在原有图上叠加⼀条直线:x = v
abline(h=) 在原有图上叠加⼀条直线:y = h

推荐阅读更多精彩内容

  • 本节概述R语言的基本知识。用稍微简单的方式讲述,而将一些细节问题轻轻带过是有必要的。虽然包含一节关于编程的简单介绍...
    出版圈郭志敏阅读 9,273评论 3 34
  • 一、基础 R是一种语法非常简单的表达式语言(expression language),大小写敏感。 可以在R环境下...
    多了去的YangXuLei阅读 1,367评论 2 3
  • 第7章 基本统计分析 在数据被组织成合适的形式后,可以使用图形探索数据,接下来是使用数值描述每个变量的分布,然后则...
    冯轩阅读 4,299评论 0 9
  • 大家好,我是悠贝南山保利绘本馆的真真老师,又到了绘本推荐时间。 今天要给大家推荐的绘本是《奶牛的埋伏》。 奶牛洛特...
    点点聚绘的脚步_绘本与成长阅读 1,158评论 0 1
  • 1,误操作导致文件损坏 时间:2002年5月 特点:第一次触发错误操作 心情:超级紧张,全身冒冷汗 详情:下班同事...
    老骥伏枥之外阅读 123评论 0 2