不多BB,上练习的笔记。
#数组
my_array <- array(data = 1:16,dim = c(2,4,2))
dim(my_array)
dim(my_array) <- c(4,2,2)
my_array2 <- array(1:16,dim = c(4,2,2),dimnames = list(c(LETTERS[1:4]),c('col1','col2'),c('first','second')))
my_matrix <- matrix(1:8,nrow = 4)
my_array2[2,2,1]
my_array2[1,1,]
my_array2[,-1,] #负号代表‘除了’
#数据框
my_df <- data.frame(name = c('TOM','ANDY','MARRY'),age = c(24,25,26),height = c(178,176,156))
dim(my_df)
View(my_df)
nrow(my_df)
#数据框2
rm(list = ls())
my_df <- data.frame(one = c(1.2,2.3,3.4,4.5,5.6), two = LETTERS[1:5], three = c(TRUE,F,T,F,T))
str(my_df) #'two'变量可以看到是个因子,观察数据框结构
my_df <- data.frame(one = c(1.2,2.3,3.4,4.5,5.6), two = LETTERS[1:5],
three = c(TRUE,F,T,F,T),stringsAsFactors = F)
my_df[,-2] #去除变量的方法
my_df$two <- NULL #去除变量的方法
my_df$four <- LETTERS[1:5] #增加变量的方法
edit(my_df) #临时编辑器
my_df2 <- edit(my_df)
fix(my_df) #永久编辑器
head(iris,n = 5)
tail(iris)
str(iris)
install.packages('psych')
library(psych)
describe(iris) #查看数据框的基本统计数据
names(iris) #数据框行名查看与修改
names(iris) <- c('V1','V2','V3','V4','V5')
head(iris)
names(iris) <- c('青','铜','五','小','强')
rm(list = ls())
my_df <- data.frame(one=c(1.2,2.3,3.4,4.5,5.6),
two=c('张三','李四','王五','赵六','田七'),
three=c(TRUE,F,T,F,T))
View(my_df)
head(my_df)
#数据框合并
my_df2 <- data.frame(four=c(1.2,2.3,3.4,4.5,5.6),
five=c('张三','李四','王五','赵六','田七'),
six=c(TRUE,F,T,F,T))
my_df3 <- cbind(my_df,my_df2)
my_df4 <- data.frame(one=c(1.2,2.3,3.4,4.5,5.6),
two=c('张三','李四','王五','赵六','刘大'),
three=c(TRUE,F,T,F,T))
my_df5 <- rbind(my_df,my_df4)
my_df6 <- data.frame(one=c(1.2,2.3,3.4,4.5,5.6),
seven=c('张三','李四','王五','赵六','田七'),
eight=c(TRUE,F,T,F,T))
my_df7 <- merge(my_df,my_df6) #合并时把同类的只显示一次
#数据框切分
View(iris)
iris_sub <- iris[sample(x = 1:nrow(iris), size = 30),] #从数据框的行中抽样
View(iris_sub)
set.seed(2018) #设置种子,可以储存一次随机数
iris_sub2 <- split(iris,f = iris$Species) #以'species'为因子,切分数据框
setosa <- as.data.frame(iris_sub2[1]) #因为有3个‘species’,所以数据类型为list
head(setosa)
iris_sub3 <- iris[iris$Species=='setosa' & iris$Sepal.Length>4.5,1:2]
range(iris_sub3$Sepal.Length)
iris_sub4 <- subset(iris,subset = iris$Species=='setosa' & iris$Sepal.Length>4.5,
select = 1:2)