R,从零水平开始。国内真的没有一本像样的R教科书啊!勉强用用薛毅编的《统计建模与R软件》吧,不出更好的了……
  工作环境仍是linux。
  第二章答案:
Ex2.1
x<-c(1,2,3)
y<-c(4,5,6)
e<-c(1,1,1)
z=2*x+y+e
z1=crossprod(x,y)#z1为x1与x2的内积 或者 x%*%y
z2=tcrossprod(x,y)#z1为x1与x2的外积 或者 x%o%y
z;z1;z2
要点:基本的列表赋值方法,内积和外积概念。内积为标量,外积为矩阵。
Ex2.2
A<-matrix(1:20,c(4,5));A
B<-matrix(1:20,nrow=4,byrow=TRUE);B
C=A+B;C
#不存在AB这种写法
E=A*B;E
F<-A[1:3,1:3];F
H<-matrix(c(1,2,4,5),nrow=1);H
#H起过渡作用,不规则的数组下标
G<-B[,H];G
要点:矩阵赋值方法。默认是byrow=FALSE,数据按列放置。
      取出部分数据的方法。可以用数组作为数组的下标取出数组元素。
 
Ex2.3
x<-c(rep(1,times=5),rep(2,times=3),rep(3,times=4),rep(4,times=2));x #或者省略times=,如下面的形式
x<-c(rep(1,5),rep(2,3),rep(3,4),rep(4,2));x
要点:rep()的使用方法。rep(a,b)即将a重复b次
 
Ex2.4
n <- 5; H<-array(0,dim=c(n,n))
for (i in 1:n){for (j in 1:n){H[i,j]<-1/(i+j-1)}};H
G <- solve(H);G #求H的逆矩阵
ev <- eigen(H);ev #求H的特征值和特征向量
要点:数组初始化;for循环的使用
待解决:如何将很长的命令(如for循环)用几行打出来再执行?每次想换行的时候一按回车就执行了还没打完的命令...
Ex2.5
StudentData<-data.frame(name=c("zhangsan","lisi","wangwu","zhaoliu","dingyi"),sex=c("F","M","F","M","F"),age=c("14","15","16","14","15"),height=c("156","165","157","162","159"),weight=c("42","49","41.5","52","45.5"));StudentData
要点:数据框的使用
待解决:SSH登陆linux服务器中文显示乱码。此处用英文代替。
Ex2.6
write.table(StudentData,file="")
#把数据框StudentData在工作目录里输出,输出的文件名为
StudentData_a<-read.table("");StudentData_a
#以数据框的形式读取文档,存入数据框StudentData_a中。
write.csv(StudentData_a,"studentdata.csv")
#把数据框StudentData_a在工作目录里输出,输出的文件名为studentdata.csv,可用Excel打开.
草原之夜吉他谱
要点:读写文件。read.table("file")
                write.table(Rdata,"file")
                read.csv("file")
                write.csv(Rdata,"file")
      外部文件,不论是待读入或是要写出的,命令中都得加双引号。
Ex2.7
Fun<-function(n){
if(n <= 0)
少女时代骂韩庚 list(fail="please input a integer above 0!")
else{
repeat{
  if(n==1) break
  else if(n%%2==0){n<-n/2}
  else n<- 3*n+1
}
list("sucess!")
stand up音译歌词
}
}
在linux下新建一个R文件,输入上述代码,保存为"2.7.R"
然后在当前目录下进入R环境,输入source("2.7.R"),即打开了这个程序脚本。
然后就可以执行函数了。
输入Fun(67),显示
"sucess!"
输入Fun(-1),显示
$fail
[1] "please input a integer above 0!"
待解决:source("*.R")是可以理解为载入这个R文件吧?如何在R环境下关闭R文件呢?
OK,自己写的第一个R程序~~
第二章答案:
Ex2.1
x<-c(1,2,3)
y<-c(4,5,6)
e<-c(1,1,1)
z=2*x+y+e
z1=crossprod(x,y)#z1为x1与x2的内积或者 x%*%y
z2=tcrossprod(x,y)#z1为x1与x2的外积或者 x%o%y
z;z1;z2
要点:基本的列表赋值方法,内积和外积概念。内积为标量,外积为矩阵。
Ex2.2
A<-matrix(1:20,c(4,5));A
B<-matrix(1:20,nrow=4,byrow=TRUE);B
C=A+B;C
#不存在AB这种写法
E=A*B;E
F<-A[1:3,1:3];F
H<-matrix(c(1,2,4,5),nrow=1);H陈慧娴资料
#H起过渡作用,不规则的数组下标
G<-B[,H];G
要点:矩阵赋值方法。默认是byrow=FALSE,数据按列放置。
      取出部分数据的方法。可以用数组作为数组的下标取出数组元素。
Ex2.3
x<-c(rep(1,times=5),rep(2,times=3),rep(3,times=4),rep(4,times=2));x #或者省略times=,如下面的形式
x<-c(rep(1,5),rep(2,3),rep(3,4),rep(4,2));x
要点:rep()的使用方法。rep(a,b)即将a重复b次
Ex2.4
n <- 5; H<-array(0,dim=c(n,n))
for (i in 1:n){for (j in 1:n){H[i,j]<-1/(i+j-1)}};H
G <- solve(H);G #求H的逆矩阵
ev <- eigen(H);ev #求H的特征值和特征向量宋喆获刑6年
要点:数组初始化;for循环的使用
待解决:如何将很长的命令(如for循环)用几行打出来再执行?每次想换行的时候一按回车就执行了还没打完的命令...
Ex2.5
StudentData<-data.frame(name=c("zhangsan","lisi","wangwu","zhaoliu","dingyi"),sex=c("F","M","F","M","F"),age=c("14","15","16","14","15"),height=c("156","165","157","162","159"),weight=c("42","49","41.5","52","45.5"));StudentData
要点:数据框的使用
待解决:SSH登陆linux服务器中文显示乱码。此处用英文代替。
冷雨夜贝斯
Ex2.6
write.table(StudentData,file="")
#把数据框StudentData在工作目录里输出,输出的文件名为
StudentData_a<-read.table("");StudentData_a
#以数据框的形式读取文档,存入数据框StudentData_a中。
write.csv(StudentData_a,"studentdata.csv")
#把数据框StudentData_a在工作目录里输出,输出的文件名为studentdata.csv,可用Excel打开.
要点:读写文件。read.table("file")
                write.table(Rdata,"file")
                read.csv("file")
                write.csv(Rdata,"file")
      外部文件,不论是待读入或是要写出的,命令中都得加双引号。
Ex2.7
Fun<-function(n){
if(n <= 0)
list(fail="please input a integer above 0!")
else{
repeat{
  if(n==1) break
  else if(n%%2==0){n<-n/2}
  else n<- 3*n+1
}
list("sucess!")
}
}
在linux下新建一个R文件,输入上述代码,保存为"2.7.R"
然后在当前目录下进入R环境,输入source("2.7.R"),即打开了这个程序脚本。
然后就可以执行函数了。
输入Fun(67),显示
"sucess!"
输入Fun(-1),显示
$fail
[1] "please input a integer above 0!"
待解决:source("*.R")是可以理解为载入这个R文件吧?如何在R环境下关闭R文件呢?
Ex3.1
新建txt文件如下:
74.3 79.5 75.0 73.5 75.8 74.0 73.5 67.2 75.8 73.5 78.8 75.6 73.5 75.0 75.8
72.0 79.5 76.5 73.5 79.5 68.8 75.0 78.8 72.0 68.8 76.5 73.5 72.7 75.0 70.4
78.0 78.8 74.3 64.3 76.5 74.3 74.7 70.4 72.7 76.5 70.4 72.0 75.8 75.8 70.4
76.5 65.0 77.2 73.5 72.7 80.5 72.0 65.0 80.3 71.2 77.6 76.5 68.8 73.5 77.2