R语言基础笔记3——数据框

不多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)

你可能感兴趣的:(R语言基础笔记3——数据框)