一.R语言向量(vector)及标量(scale)
1.向量:将向量拆分成“向”和“量”二字,前者表示方向,后者表示变量,再合二为一,即具有方向的变量。
2.标量:也就是没有方向的变量,在更多的情况下,我们接触的都是标量。
x1 <- c(2,-2)
x2 <- c(-2,2)
identical(x1,x2)
[1] FALSE
my_vec <- c(1:10)
my_vec
[1] 1 2 3 4 5 6 7 8 9 10
my_scale<-()
二.数据框(data.frame)
Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的。
my_df <- data.frame(num = 1:5, letter = LETTERS[1:5], logic = c(T,F,T,F,T))
my_df
num letter logic
1 1 A TRUE
2 2 B FALSE
3 3 C TRUE
4 4 D FALSE
5 5 E TRUE
my_df2 <- data.frame(1:5, LETTERS[1:5])
my_df2
X1.5 LETTERS.1.5.
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
my_df3 <- data.frame(num = 1:5, letter = LETTERS[1:5], logic = c(T,F,T,F,T), row.names = paste('row',1:5))
my_df3
num letter logic
row 1 1 A TRUE
row 2 2 B FALSE
row 3 3 C TRUE
row 4 4 D FALSE
row 5 5 E TRUE
数据框的读取
read.table函数 了解read.table各个参数的意义。
??read.table
read.table(file, header = FALSE, sep = "", quote = "\"'",
dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
row.names, col.names, as.is = !stringsAsFactors,
na.strings = "NA", colClasses = NA, nrows = -1,
skip = 0, check.names = TRUE, fill = !blank.lines.skip,
strip.white = FALSE, blank.lines.skip = TRUE,
comment.char = "#",
allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = default.stringsAsFactors(),
fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
三.实例操作
读取实例数据
> getwd()#显示工作路径
[1] "H:/Figure"
> setwd("H:/Figure")#设置工作路径
> a<-read.table(file = "huahua.txt",sep = "\t",header =T) #读取文件,分隔符为Tab,有表头
> dim(a)
[1] 5 2
> is.data.frame(a)
[1] TRUE
> summary(a)
X1 X2
A:1 Min. :1.0
B:1 1st Qu.:1.5
C:1 Median :2.0
D:1 Mean :2.0
E:1 3rd Qu.:2.5
Max. :3.0
NA's :3
>
> b<-read.table(file = "doudou.txt",sep = ",",header =T)#分隔符从\t变为,
> x<-read.csv('doudou.txt')
> rownames(x)#查看行名
[1] "1" "2" "3" "4" "5"
> colnames(x)#查看列名
[1] "X1" "X2"
> colnames(x)<-c("age",'names')
> x
age names
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
Attach及With函数
attach(what, pos = 2L, name = deparse(substitute(what)),
warn.conflicts = TRUE)
with(data, expr, ...)
小括号是函数的代表,一个函数之所以能成为一个函数,那是因为它的名称后面跟了一个小括号;中括号是提取子集用的,用途十分广泛;R语言中,大括号{}主要在条件语句和循环语句中出现.
> c <-data.frame(case=paste("S",c(1:50)),values=runif(50))
> head(c)
case values
1 S 1 0.4543641
2 S 2 0.5379318
3 S 3 0.3096288
4 S 4 0.6699199
5 S 5 0.2579748
6 S 6 0.6403503
> plot(c$case,c$values)
> attach(c)
The following objects are masked from c (pos = 3):
case, values
> plot(case,values)
>
> with(c,{
+ plot(case,values)
+ x<<-summary(values) #求和并赋值给x,<<的意思是作为全局变量,y也就是出了with循环仍有效。
+ })
> x
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.05874 0.33941 0.60480 0.57536 0.81688 0.98565