• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言基础与入门实践

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

熟练使用R软件

实践1:最初几步

  1. x=1:100#把1,2,...,100个整数向量赋值到x

  2. (x=1:100) #同上, 只不过显示出来

  3. sample(x,20) #从1,...,100中随机不放回地抽取20个值作为样本

  4. set.seed(0);sample(1:10,3)#先设随机种子再抽样.

  5. #从1,...,200000中随机不放回地抽取10000个值作为样本:

  6. z=sample(1:200000,10000)

  7. z[1:10]#方括号中为向量z的下标

  8. y=c(1,3,7,3,4,2)

  9. z[y]#以y为下标的z的元素值

  10. (z=sample(x,100,rep=T))#从x放回地抽取100个随机样本

  11. (z1=unique(z))

  12. length(z1)#z中不同的元素个数

  13. xz=setdiff(x,z) #xz之间的不同元素--集合差

  14. sort(union(xz,z))#对xzz的并的元素从小到大排序

  15. setequal(union(xz,z),x) #对xzz的并的元素与x是否一样

  16. intersect(1:10,7:50) #两个数据的交

  17. sample(1:100,20,prob=1:100)#从1:100中不等概率随机抽样,

  18.        #各数目抽到的概率与1:100成比例

实践2: 一些简单运算

  1. pi *10^2 #能够用?”*”来看基本算术运算方法, pi是圆周率

  2. "*"(pi, "^"(10,2)) #和上面一样, 有些繁琐, 是吧! 没有人这么用

  3. pi * (1:10)^-2.3#可以对向量求指数幂

  4. x = pi * 10^2

  5. x

  6. print(x) #和上面一样

  7. (x=pi *10^2) #赋值带打印

  8. pi^(1:5) #指数也可以是向量

  9. print(x, digits = 12)#输出x12位数字

实践3:关于R对象的类型等

  1. 这里写代码片x=pi*10^2

  2. class(x) #xclass

  3. typeof(x) #xtype

  4. class(cars)#cars是一个R中自带的数据

  5. typeof(cars) #carstype

  6. names(cars)#cars数据的变量名字

  7. summary(cars) #cars的汇总

  8. head(cars)#cars的头几行数据, cars[1:6,]相同

  9. tail(cars) #cars的最后几行数据

  10. str(cars)#也是汇总

  11. row.names(cars) #行名字

  12. attributes(cars)#cars的一些信息

  13. class(dist~speed)#公式形式,"~"左边是因变量,右边是自变量

  14. plot(dist ~speed,cars)#两个变量的散点图

  15. plot(cars$speed,cars$dist) #同上

实践4: 包括简单自变量为定量变量及定性变量的回归

  1. ncol(cars);nrow(cars) #cars的行列数

  2. dim(cars) #cars的维数

  3. lm(dist ~ speed, data = cars)#以dist为因变量,speed为自变量做OLS

  4. cars$qspeed =cut(cars$speed, breaks=quantile(cars$speed),

  5.    include.lowest = TRUE) #增加定性变量qspeed, 四分位点为分割点

  6. names(cars) #数据cars多了一个变量

  7. cars[3]#第三个变量的值和cars[,3]类似

  8. table(cars[3])#列表

  9. is.factor(cars$qspeed)

  10. plot(dist ~ qspeed, data = cars)#点出箱线图

  11. (a=lm(dist ~ qspeed, data = cars))#拟合线性模型(简单最小二乘回归)

  12. summary(a)#回归结果(包括一些检验)

实践5: 简单样本描述统计量等等

  1. 这里写代码片x <- round(runif(20,0,20), digits=2)#四舍五入

  2. summary(x) #汇总

  3. min(x);max(x) #极值, range(x)类似

  4. median(x)  # 中位数(median)

  5. mean(x)    # 均值(mean)

  6. var(x)     #方差(variance)

  7. sd(x)      # 标准差(standard deviation),为方差的平方根

  8. sqrt(var(x)) #平方根

  9. rank(x)    # 秩(rank)

  10. order(x)#升幂排列的x的下标

  11. order(x,decreasing = T)#降幂排列的x的下标

  12. x[order(x)] #和sort(x)相同

  13. sort(x)     #同上: 升幂排列的x

  14. sort(x,decreasing=T)#sort(x,dec=T) 降幂排列的x

  15. sum(x);length(x)#元素和及向量元素个数

  16. round(x) #四舍五入,等于round(x,0),而round(x,5)为留到小数点后5

  17. fivenum(x)  # 五数汇总, quantiles

  18. quantile(x) # 分位点 quantiles (different convention)有多种定义

  19. quantile(x, c(0,.33,.66,1))

  20. mad(x) # "median average distance":

  21. cummax(x)#累积最大值

  22. cummin(x)#累积最小值

  23. cumprod(x)#累积积

  24. cor(x,sin(x/20)) #线性相关系数 (correlation)

实践6:简单图形

  1. x=rnorm(200)#200个随机正态数赋值到x

  2. hist(x, col = "light blue")#直方图(histogram)

  3. rug(x) #在直方图下面加上实际点的大小

  4. stem(x)#茎叶图

  5. x <- rnorm(500)

  6. y <- x + rnorm(500) #构造一个线性关系

  7. plot(y~ x) #散点图

  8. a=lm(y~x) #做回归

  9. abline(a,col="red")#或者abline(lm(y~x),col="red")散点图加拟合线

  10. print("Hello World!")

  11. paste("x 的最小值= ", min(x)) #打印

  12. demo(graphics)#演示画图(点Enter来切换)

实践7: 复数运算和求函数极值

  1. #(2+4i)^-3.5+(2i+4.5)*(-1.7-2.3i)/((2.6-7i)*(-4+5.1i))#复数运算

  2. #下面构造一个10维复向量, 实部和虚部均为10个标准状态样本点:

  3. (z <-complex(real=rnorm(10), imaginary =rnorm(10)))

  4. complex(re=rnorm(3),im=rnorm(3))#3维复向量

  5. Re(z) #实部

  6. Im(z) #虚部

  7. Mod(z) #模

  8. Arg(z) #辐角

  9. choose(3,2) #组合

  10. factorial(6)#排列6!

  11. #解方程:

  12. f=function(x) x^3-2*x-1

  13. uniroot(f,c(0,2))#迭代求根

  14. #如果知道根为极值

  15. f=function(x) x^2+2*x+1 #定义一个二次函数

  16. optimize(f,c(-2,2))#在区间(-2,2)间求极值

实践8:字符型向量

  1. a=factor(letters[1:10])#letters:小写字母的向量,LETTERS:大写字母

  2. a[3]="w"          #不行! 会给出警告

  3. a=as.character(a) #转换一下

  4. a[3]="w"          #可以了

  5. a;factor(a)       #两种不同的类型

实践9:数据输入输出

  1. x=scan()#从屏幕输入数据, 可以键入, 也可以粘贴,可多行输入,空行后Enter

  2. 1.5 2.6 3.7 2.1 8.9 12 -1.2 -4

  3. x=c(1.5,2.6,3.7,2.1,8.9,12,-1.2,-4)#等价于上面

  4. w=read.table(file.choose(),header=T)#从列表中选择有变量名的数据

  5. setwd(“f:/2010stat”)#或setwd("f:\2010stat")#建立工作路径

  6. (x=rnorm(20)) #给x赋值20个标准正态数据值

  7. #(注:有常见分布的随机数, 分布函数,密度函数及分位数函数)

  8. write(x,"f:/2010stat/test.txt")#把数据写入文件(路径要对)

  9. y=scan("f:/2010stat/test.txt");y #扫描文件数值数据到y

  10. y=iris;y[1:5,];str(y) #irisR自带数据

  11. write.table(y,"test.txt",row.names=F)#把数据写入文本文件

  12. w=read.table("f:/2010stat/test.txt",header=T)#读带有变量名的数据

  13. str(w) #汇总

  14. write.csv(y,"test.csv")#把数据写入csv文件

  15. v=read.csv("f:/2010stat/test.csv")#读入csv数据文件

  16. str(v) #汇总

  17. data=read.table("clipboard")#读入剪贴板的数据

实践10:序列等等

  1. (z=seq(-1,10,length=100))#-110等间隔的100个数的序列

  2. z=seq(-1,10,len=100)#和上面等价写法

  3. (z=seq(10,-1,-0.1)) #10到-1间隔为-0.1的序列

  4. (x=rep(1:3,3))  #三次重复1:3

  5. (x=rep(3:5,1:3)) #自己看, 这又是什么呢?

  6. x=rep(c(1,10),c(4,5))

  7. w=c(1,3,x,z);w[3]#把数据(包括向量)组合(combine)成一个向量

  8. x=rep(0,10);z=1:3;x+z #向量加法(如果长度不同, R如何给出警告和结果?)

  9. x*z   #向量乘法

  10. rev(x)#颠倒次序

  11. z=c("no cat","has ","nine","tails") #字符向量

  12. z[1]=="no cat" #双等号为逻辑等式

  13. z=1:5

  14. z[7]=8;z #什么结果? 注:NA为缺失值(not available)

  15. z=NULL

  16. z[c(1,3,5)]=1:3;

  17. z

  18. rnorm(10)[c(2,5)]

  19. z[-c(1,3)]#去掉第13元素

  20. z=sample(1:100,10);z

  21. which(z==max(z))#给出最大值的下标


更多内容阅读原文


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言:载入rjava(xlsx)包报错发布时间:2022-07-18
下一篇:
R语言学习笔记:sort、rank、order、arrange排序函数发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap