《复杂数据统计方法——基于R的应用》
这是作者为练习而编的一些代码,适合初学者。通过这一系列的实践,可以对R有一个简单的了解,方便接下来的学习。
实践1(最初几步)
x=1:100
(x=1:100)#带括号则会显示出来结果
simple(x,20)
set.seed(0);sample(1:10,3)
z=sample(1:200,10)#给一组数
z[1:10]#给这组数下标
y=c(1,3,7,3,4,2)
z[y]#以y为下标的这组数的元素值
(z=sample(x,100,rep=T))#从x中有放回的抽出100个数,rep=T指的是有放回
(z1=unique(z))#unique 唯一的
length(z1)
xz=setdiff(x,z)
sort(union(xz,z))#对xz和z之间的并的元素从小到大排列
setequal(union(xz,z),x)#xz及z的并的元素与x是否一样
intersect(1:10,7:50)#两个数据的交
sample(1:100,20,prob=1:100)
#从1到100中不等概率抽样,各数字被抽到的概率与其值大小成正比
sort(sample(1:100,20,prob=1:100))
实践2(一些简单的运算)
向量的指数,指数可以是向量
pi*10^2
"*"(pi,"^"(10,2))
pi*(1:10)^-2.3 #对向量求指数幂
x = pi * x^2 #对向量求指数幂
print(x)
(x = pi *10^2)
pi^(1:5) #指数也可以是向量
print(x,digits = 12)#输出x的12位数字
实践3(关于R对象的类型)
class type
数据的描述,例如最值、行列名称等等 。
x = pi*10^2
class(x)#x的class
typeof(x)#x的type
cars#cars是一个R中自带的数据
class(cars)#cars的class
typeof(cars)#cars的type
names(cars)#cars数据变量的名字
summary(cars)#cars的数据汇总 最大/小值 四分之一/三分位数 中位数 均值
head(cars)#cars的前几行数据,和cars[1:6]相同
tail(cars)#cars的后几行数据
str(cars)#汇总
row.names(cars)#行名字
attributes(cars)#cars的一些信息 行名 列名
class(dist~speed)#公式形式 “~”左边是因变量 右边是自变量
plot(dist~speed,cars)#两个变量的散点图
plot(cars$speed,cars$dist)#两个变量的散点图
实践4(简单自变量为 定量变量 及 定性变量 的回归)
ncol(cars);nrow(cars) #cars的行列数
dim(cars) #cars的维数
lm(dist~speed,data=cars)#以dist为因变量,speed为自变量做ols(最小二乘回归)
cars$qspeed = cut(cars$speed,breaks=quantile(cars$speed),include.lowest=TRUE)
#增加定性变量qspeed,四分位点为分割点
names(cars)#数据cars多了一个变量
cars[3]#第三个变量的值,和cars[,3]类似
table(cars[3])#列表
is.factor(cars$qspeed)
plot(dist~qspeed,data=cars)#点出箱线图
(a=lm(dist~qspeed,data=cars))#拟合线性模型(简单最小二乘回归)
summary(a)#回归结果
a.定性变量又名分类变量 ( categorical variable ): 观测的个体只能归属于几种互不相容类别中的一种时,一般是用非数字来表达其类别,这样的观测数据称为定性变量。
b.R语言中cut()函数的用法?
cut():切割将x的范围划分为时间间隔,并根据其所处的时间间隔对x中的值进行编码。
参数:breaks:两个或更多个唯一切割点或单个数字(大于或等于2)的数字向量,给出x被切割的间隔的个数。
breaks:采用fivenum():返回五个数据:最小值、下四分位数、中位数、上四分位数、最大值。
labels:为区间数,打标签
ordered_result:逻辑:结果应该是一个有序的因素吗?
参考文章:https://blog.csdn.net/mr_muli/article/details/79616374