R语言学习日记(5)--《R语言入门》

创建矩阵对象:

#创建矩阵matrix(data = NA , nrow = 1 , ncol = 1 , byrow  = FALSE , dimnames = NULL)
#byrow = FALSE表示默认按列填充,dimnames选项给行列命名。
> matrix(data = 3 , nr = 2 , nc = 2)
     [,1] [,2]
[1,]    3    3
[2,]    3    3
> matrix(1:9 , 3 , 3)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> matrix(1:9 , 3 , 3 , byrow = TRUE)
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
> #方法2:给维数赋值
> x <- 1:15
> x
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
> dim(x) <- c(3 , 5)
> x
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    4    7   10   13
[2,]    2    5    8   11   14
[3,]    3    6    9   12   15
> 

创建数据框和列表对象:
数据框可以使用read.table(),也可使用data.frame()得到。

> #数据框中的向量应该有相同长度,否则,较短的那个向量将会被重复。
> x <- 1:4; n <- c(10,11);
> data.frame(x , n)
  x  n
1 1 10
2 2 11
3 3 10
4 4 11
> y <- 2:4
> y
[1] 2 3 4
> data.frame(x ,y )
Error in data.frame(x, y) : 参数值意味着不同的行数: 4, 3
> n <- c(10,11,12)
> data.frame(x , n)
Error in data.frame(x, n) : 参数值意味着不同的行数: 4, 3
> #猜想:如果较短的那个向量不能被整数次循环的话,会出现报错如上所示。
> ##列表
> l1 <- list(x , y)
> l1
[[1]]
[1] 1 2 3 4

[[2]]
[1] 2 3 4

> names(l1)
NULL
> l2 = list(A = x , B = y)
> l2
$A
[1] 1 2 3 4

$B
[1] 2 3 4

> names(l2)
[1] "A" "B"
> 

时间序列:
由于课程《时间序列》待开课,暂时跳过这部分内容。
表达式:
所有有效命令都是表达式。
一个命令从键盘输入后,将会被求值。
而函数expression就是使得一个表达式不被求值,之后使用eval()对所创建的表达式求值。

> x <- 3; y <- 2; z <- 0;
> exp1 <- expression(x/(y + exp(z)));#如果没有expression函数的话,将会直接被求值
> exp1
expression(x/(y + exp(z)))
> eval(exp1)
[1] 1
#字符型变量也可以做表达式,一些函数还会将表达式看作参数,比如下面求偏导
> D(exp1 , "x")
1/(y + exp(z))
> D(exp1 , "y")
-(x/(y + exp(z))^2)

对象类型的转化:
使用函数的格式为:as.something
基本的转换规则:
在这里插入图片描述
此外还有:
as.matrix(), as.ts, as.data.frame, as.expression,...
需要注意的是:因子转化

> fac <- factor(c(1,10))
> fac
[1] 1  10
Levels: 1 10
> as.numeric(fac)
[1] 1 2  
#因子型直接转化为数值型时,不会涉及因子的水平值;
#如果希望保留水平值,需要字符型转换做中介。。如下
> as.numeric(as.character(fac))
[1]  1 10
#字符串转成数值型
> fac2 <- c("male" , "female")
> fac2
[1] "male"   "female"
> as.numeric(fac2)
[1] NA NA
Warning message:
NAs introduced by coercion 


> fac2 <- factor(c("male" , "female"))
> fac2
[1] male   female
Levels: female male
> as.numeric(fac2)
[1] 2 1
发布了106 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43448491/article/details/104066298