《R语言与数据挖掘》第三章上机实验

 #实验一
#1)查看变量名称,更改变量名

#1.使用rename
install.packages("reshape")
library(reshape)
rename(CO2,c(Treatment="Treat"))
#2.使用names
names(CO2)[3]="Treat"

#2)检查是否存在缺失值,若有,检查位置并删除所在行

anyNA(CO2)
is.na(CO2)
na.omit(CO2)

#3)对变量update排序,并对数据集按照update排序

#从大到小
sort(CO2$uptake,decreasing=TRUE)
#从小到大
sort(CO2$uptake)
#数据集从大到小
CO2[order(CO2$uptake,decreasing=TRUE),]
#数据集从小到大
CO2[order(CO2$uptake),]

#4)将CO2随机分成两组,比例为6:4

n<-sample(2,length(CO2$uptake),replace=TRUE,prob=c(0.6,0.4))
p1<-CO2[n==1,]
p1
p2<-CO2[n==2,]
p2

#5)应用tapply(),计算不同plant对应的uptake的平均值

tapply(CO2$uptake,CO2$Plant,mean)

#6)应用aggregate(),计算不同plant、type对应的uptake的平均值

aggregate(CO2[,5],by=list(CO2$Type,CO2$Plant),FUN=mean)

#7)应用lapply(),同时计算con和uptake的均值

lapply(CO2[,c(4,5)], mean)

#8)使用grep(),找出plant中含有“Qn”的行的位置,并将这些行储存于Plant_Qn中

Plant_Qn<-CO2[grep("Qn",CO2$Plant),]

#9)使用gsub(),将CO2中plant中的“Qn”改为“QN”

gsub("Qn","QN",CO2$Plant)

#实验二
#1)编写stat,要求可以同时计算均值、最大值、最小值、标准差、峰度和偏度

install.packages("fBasics")
library(fBasics)
stat<-function(x)
{
  #异常值处理,当输入的数据不是数值型数据时报错
  if(!is.numeric(x)){
    stop("the input data must be numberic!\n")
  }
  #异常处理,当今输入一个数据时,告知不可计算标准差
  if(length(x)==1){
    stop("can not compute sd for one number,
         a numerric vector required.\n")
  }
  meanx<-mean(x)
  Max_x<-max(x)
  Min_x<-min(x)
  x2<-c()
  for(i in 1:length(x)){
    xn<-x[i]-mean(x)
    x2[i]<-xn^2
  }
  sum2<-sum(x2)
  sd<-sqrt(sum2/(length(x)-1))
  sk<-skewness(x)
  ku<-kurtosis(x)
  answer<-c(meanx,Max_x,Min_x,sd,sk,ku)
  return(answer)
}

#2)生成自由度为2的t分布的100个随机数t,并通过stat计算

t<-rt(100,2)
stat(t)
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值