5种基本类型的对象
字符character
双引号或单引号夹起来,如“字符”
赋值 orange 为字符串 red、green、yellow,显示字符串,查看字符串数据类型,计算字符串长度。
# Create a vector
orange <- c('red','green',"yellow")
print(orange)
[1] "red" "green" "yellow"
# Get the class of the vector
print(class(orange))
[1] "character"
length(orange)
[1] 3
证书integer
复数complex
如x+ab
逻辑logical
true/false
逻辑假和真的几种形式,查看逻辑假的变量类型。
# 假
F / FALSE / 0
F
[1] FALSE
# 真
T / TRUE / !0
class(T)
[1] "logical"
数值numeric
整数、小数、科学计数的方式,默认双精度型数据,real numbers
6种储存数据的对象类型:
因子factor
分类型数据需要把数据分为不同的水平,如性别分为男女两个因子
向量vector
有相同基本类型元素组成的序列,相当于一维数组
赋值变量 x 为 1,2,3 / 1,2,3,4,5,6,7,8,9; 取值 2,3 / 3 / 3,2,1; 输出字符串和变量(myString) Hello World; 输出 3.9 与 1.6 之和。
x<-c(1,2,4) / x<-c(1:9) / x[c(0,0,1)]
x
[1] 1 2 4
c(1,2,4)->x
x
[1] 1 2 4
x[2:3] / x[3] / x[c(3,2,1)]
[1] 2 4
print("Hello World")
[1] Hello World
# Add two numbers
print(3.9 + 1.6)
[1] 5.5
myString <- "Hello, World!"
print ( myString) / cat(myString,"\n")
[1] "Hello, World!"
赋值隐藏变量 a 为 2,3,4,var_123 为 123;显示所有变量 、隐藏变量;正则 var*;删除 隐藏变量 a;显示所有变量。
.a<-c(2,3,4)
var_123=123
ls()
[1] "a" "var_123"
ls(all.name=TRUE)
[1] ".a" "a" "var_123"
ls(pattern="var")
[1] "var_123"
rm(.a)/remove(.a)
ls(all.name=T)
[1] "a" "d" "var_123"
矩阵matrix
以 1,2,4,8(cells、rnames、cnames) 构建矩阵 mymatrix
C1 C2
R1 1 2
R2 4 8
cells<- c(1,2,4,8)
rnames<-c("R1", "R2")
cnames<-c("C1", "C2")
mymatrix<-matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames=list(rnames, cnames))
mymatrix
# C1 C2
# R1 1 2
# R2 4 8
列表list
向量、矩阵和数组的元素必须是同一类型的数据,但是如果一个数据对象需要含有不同的数据类型,则采用列表
g(title) 为 My First List, h(ages) 为 25, 26, 18, 39, j 为 1~10(5行)的矩阵,k 为字符串 one, two, three 建数据列表 mylist;
g<-"My First List"
h<-c(25, 26, 18, 39)
j<-matrix(1:10, nrow=5)
k<-c("one", "two", "three")
mylist<-list(title=g, ages=h, j, k)
mylist
$title
[1] "My First List"
$ages
[1] 25 26 18 39
[[3]]
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
[[4]]
[1] "one" "two" "three"
数组array
一维数组是向量,二维数组是矩阵。向量和矩阵的推广
数据框data.frame
一种矩阵形式的数据,可以是不同类型的数据。
patientID 为 1, 2, 3, 4,age 为 25, 34, 28, 52, diabetes 为 Type1, Type2, Type1, Type1,status 为 Poor, Improved, Excellent, Poor 建数据框 patientdata。
# method 2
patientID <- c(1, 2, 3, 4)
age <- c(25, 34, 28, 52)
diabetes <- c("Type1", "Type2", "Type1", "Type1")
status <- c("Poor", "Improved", "Excellent", "Poor")
patientdata <- data.frame(patientID, age, diabetes, status)
head(patientdata)
# patientID age diabetes status
#1 1 25 Type1 Poor
#2 2 34 Type2 Improved
#3 3 28 Type1 Excellent
#4 4 52 Type1 Poor