learnR_datastructure_2
#数据集的行和列
统计学家: 观测和变量 observation&variable
数据分析师: 记录和字段 record&field
数据挖掘者: 示例和属性 example&attribute
#数据结构: 伪“标量”、向量、矩阵、数组、数据框、列表。
#数据类型: 数值型、字符型、逻辑型、复数型(虚数)、原生型(字节)。
#变量: 包括名义型(类别型)、有序型、连续型等变量。
####名义型变量: diabetes <- c('Type1','Type2','Type1','Type1')
####有序型变量: status <- c('Poor','Improved','Excellent','Poor')
####连续型变量: age <- c(18,23,20,24)
#对象: 常量、数据结构、函数、图形。
#实例标识符: rownames(行名),标记实例名称所用的变量。
#因子: R中,指类别(名义型)变量和有序变量。它决定数据的分析方式和视觉呈现。
2.1 伪“标量”(维度='1', 共存数据类型=1, mode=unsure)
my_scalar <- 'hello' #R中没有标量,标量以单元素向量的形式出现。
2.2 向量 (维度=1, 共存数据类型>1, mode=unsure)
my_vector <- c(1, 'hello', TRUE, 3+4i)
2.3 矩阵 (维度=2, 共存数据类型=1, mode='numeric')
vector <- 1:12
rnames <- c('r1','r2','r3')
cnames <- c('c1','c2','c3','c4')
my_matrix <- matrix(vector, nrow=3, ncol=4, byrow=FALSE, dimnames=list(rnames, cnames))
2.4 数组 (维度>2, 共存数据类型=1, mode='numeric')
vector <- 1:24
dim1 <- c('a1','a2')
dim2 <- c('b1','b2','b3')
dim3 <- c('c1','c2','c3','c4')
my_array <- array(vector, c(2,3,4), dimnames=list(dim1,dim2,dim3))
2.5 数据框(维度=2, 共存数据类型>1, mode='list')
id <- c(1,2,3)
name <- c('Curry','Tampson','Green')
age <-c (20,NA,22)
sex <- c('male','female','male')
my_data <- data.frame(id, name, age, sex, row.names=id)#实例标识符row.names
2.6 列表 (维度>2, 共存数据类型>1, mode='list')
aa <- 'My_First_list'
bb <- c('Tom','Jerry')
cc <- matrix(1:10, nrow=5)
my_list <- list(title=aa, person=bb, score=cc)
my_list[[2]] == my_list[['person']] == my_list$person
########################################################################
#关于数据框中变量(my_data$name)的不同的代码写法
2.5.1 常规写法
summary(mtcars$mpg)
plot(mtcars$mpg, mtcars$disp)
plot(mtcars$mpg, mtcars$wt)
2.5.2 不推荐#attach(),容易引起变量名冲突
attach(mtcars)
summary(mpg)
plot(mpg, disp)
plot(mpg, wt)
detach(mtcars)
2.5.3 #with()函数
with(mtcars, {
no_print <- summary(mpg)
yes_print <<- summary(mpg) #<<-特殊赋值符
plot(mpg, disp)
plot(mpg, wt)
})
yes_print
no_print
2.5.4 因子
R中,指类别(名义型)变量和有序变量。它决定数据的分析方式和视觉呈现。
####名义型变量factor()转换:
diabetes <- c('Type1','Type2','Type1','Type1')
diabetes_f <- factor(diabetes) #无序赋值numeric1,2,3...
####有序型变量factor()转换:
status <- c('Poor','Improved','Excellent','Poor')
status_f1 <- factor(status, ordered=TRUE) #以字母顺序赋值numeric1,2,3...
status_f2 <- factor(status, ordered=TRUE, levels=c('Poor','Improved','Excellent'))
#以levels顺序赋值numeric1,2,3...
另,读取Excel多行表头的data.frame方式处理: