该篇讲“基本语法”和“数据类型'和”变量“
#基本语法
> myString <- "Hello,World!"
> print(myString)
[1] "Hello,World!"
#多行的方式,是用双引号or单引号,把内容括起来。
> "This is
+ a double quote"
[1] "This is\na double quote"
#数据类型
#逻辑型
> v <- FALSE
> print(class(v))
[1] "logical"
#数值型
> v <- 23.5
> print(class(v))
[1] "numeric"
#整数型
> v <- 34L
> print(class(v))
[1] "integer"
#复数型
> v <- 5i-2
> print(class(v))
[1] "complex"
#字符型
> v <- "TRUE"
> print(class(v))
[1] "character"
#原型
> v <- charToRaw("Hello")
> print(class(v))
[1] "raw"
#接下来的是一些复杂的类型
#向量类型
#当你想用多个元素创建向量时,你应该使用c()函数,这意味着将元素组合成一个向量。
> #create a vector
> apple <- c('red','green','yellow')
> print(class(apple))
[1] "character"
> print(apple)
[1] "red" "green" "yellow"
#列表类型
> list1 <- list(c(2,5,3),21.3,sin)
> print(list1)
[[1]]
[1] 2 5 3
[[2]]
[1] 21.3
[[3]]
function (x) .Primitive("sin")
> print(class(list1))
[1] "list"
#矩阵类型
> #Create a matrix
> M = matrix(c('a','a','b','c','b','a'),nrow=2,ncol=3,byrow=TRUE)
> print(M)
[,1] [,2] [,3]
[1,] "a" "a" "b"
[2,] "c" "b" "a"
> print(class(M))
[1] "matrix"
#数组类型
> #create an array
> a <- array(c('green','yellow'),dim=c(3,3,2))
> print(a)
, , 1
[,1] [,2] [,3]
[1,] "green" "yellow" "green"
[2,] "yellow" "green" "yellow"
[3,] "green" "yellow" "green"
, , 2
[,1] [,2] [,3]
[1,] "yellow" "green" "yellow"
[2,] "green" "yellow" "green"
[3,] "yellow" "green" "yellow"
> a <- array(c('green','yellow'),dim=c(3,3,2))
> print(class(a))
[1] "array"
#因子类型
#因子是使用向量创建的r对象。 它将向量与向量中元素的不同值一起存储为标签。 标签总是字符,不管它在输入向量中是数字还是字符或布尔等。 它们在统计建模中非常有用。
#使用factor()函数创建因子。nlevels函数给出级别计数。
> apple_colors <- c('green','green','yellow','red','red','red','green')
> factor_apple <- factor(apple_colors)
> print(factor_apple)
[1] green green yellow red red red green
Levels: green red yellow
> print(class(factor_apple))
[1] "factor"
> print(nlevels(factor_apple))
[1] 3
#数据帧类型
> BMI <- data.frame(
+ gender = c('Male','Female','Male'),
+ height = c(152,171.5,165),
+ weight = c(81,93,78),
+ age = c(42,38,65)
+ )
> print(BMI)
gender height weight age
1 Male 152.0 81 42
2 Female 171.5 93 38
3 Male 165.0 78 65
> print(class(BMI))
[1] "data.frame"
变量
#变量赋值
#可以使用向左,向右和等于运算符来为变量分配值。 可以使用print()或cat()函数打印变量的值。 cat()函数将多个项目组合成连续打印输出。
var.1 = c(0,1,2)
> var.2 <- c(1,2,3)
> c(2,3,4) -> var.3
> cat ("var.1 is ", var.1 ,"
+ ")
var.1 is 0 1 2
> cat ("var.2 is ", var.2 ,"
+ ")
var.2 is 1 2 3
> cat ("var.3 is ", var.3 ,"
+ ")
var.3 is 2 3 4
> #向量c(TRUE,1)具有逻辑和数值类的混合。 因此,逻辑类强制转换为数字类,使TRUE为1。
> var.4 <- c(TRUE,1)
> print(var.4)
[1] 1 1
> #变量的数据类型
> #在R语言中,变量本身没有声明任何数据类型,而是获取分配给它的R - 对象的数据类型。 所以R称为动态类型语言,这意味着我们可以在程序中使用同一个变量时,一次又一次地更改变量的数据类型。
> var_x <- "Hello"
> cat("The class of var_x is ",class(var_x),"
+ ")
The class of var_x is character
> var_x <- 34.5
> cat(" Now the class of var_x is ",class(var_x),"
+ ")
Now the class of var_x is numeric
> var_x <- 27L
> cat(" Next the class of var_x becomes ",class(var_x),"
+ ")
Next the class of var_x becomes integer
#查找变量
#要知道工作空间中当前可用的所有变量,我们使用ls()函数。 ls()函数也可以使用模式来匹配变量名。
> print(ls())
[1] "a" "apple" "apple_colors" "BMI" "factor_apple" "list1" "M" "myString"
[9] "v" "var.1" "var.2" "var.3" "var.4" "var_x"
>
> # List the variables starting with the pattern "a"
#ls()函数可以使用模式来匹配变量名。
> print(ls(pattern="a"))
[1] "a" "apple" "apple_colors" "factor_apple" "var.1" "var.2" "var.3" "var.4"
[9] "var_x"
#删除变量
#可以使用rm()函数删除变量。 下面我们删除变量var.3。 打印时,抛出变量错误的值。
> rm(var.3)
> print(var.3)
Error in print(var.3) : 找不到对象'var.3'
> rm(list = ls())
> print(ls())
character(0)