R语言-数据框

数据框

能把各种不同类型数据组织在一起的数据结构,理解起来和Excel表格类似,可指定行列名,在R中使用最广泛
tips:赋值变量的时候用<-;函数参数用=

#创建数据框
> name <- c('小明','小红','小花')
> age <- c(22,20,24)
> sex <- c('m','f','m')
> person <- data.frame(name,sex,age)
> person
  name sex age
1 小明   m  22
2 小红   f  20
3 小花   m  24

#插入一列
> person$weight <- c(75,50,60)
> person
  name sex age weight
1 小明   m  22     75
2 小红   f  20     50
3 小花   m  24     60
#显示数据框结构
> str(person)
'data.frame':   3 obs. of  3 variables:
 $ name: Factor w/ 3 levels "小红","小花",..: 3 1 2
 $ sex : Factor w/ 2 levels "f","m": 2 1 2
 $ age : num  22 20 24
#访问元素
> person$name[2]
[1] 小红
Levels: 小红 小花 小明

> person$sex[2]
[1] f
Levels: f m

> person[1,2]
[1] m
Levels: f m

> person$age[2]
[1] 20

根据参数进行连接

#新添加一个进行连接的数据框
> person1 <- data.frame(name = name, age = c(18, 16 , 24), height = c(180,160,168))
> person1
  name age height
1 小明  18    180
2 小红  16    160
3 小花  24    168
#数据说明:我们现在需要把两个表里是同一个人的信息进行连接,只有小花名字和年龄和person数据框里的一样,所以只有这一条符合连接逻辑,其他两条年龄不匹配。

#进行连接
> merge(person,person1,person,by.x = 'age',by.y = 'age')
  age name.x sex weight name.y height
1  24   小花   m     60   小花    168
#理解起来和数据库

合并

#rbind()按行拼接,要求列数相同
#cbind()按列拼接,要求行数相同
#数据框是一个特殊的列表所以可以使apply
lapply(): 对列表的每个组件执行给定的函数,并返回另一个列表。
sapply():可以将结果整理以向量,矩阵,列表 的形式输出

> lapply(fruit,sum)
$`price`
[1] 35

$weight
[1] 320

> sapply(fruit,sum)
 price weight 
    35    320 

vapply()
vapply()与sapply()相似,他可以预先指定的返回值类型。使得得到的结果更加安全。
tapply( )
tapply(x,f,g)需要向量 x (x不可以是数据框),因子或因子列表 f 以及函数 g 。
tapply()执行的操作是:暂时将x分组,每组对应一个因子水平,得到x的子向量,然后这些子向量应用函数 g
mapply()
多参数版本的sapply()。第一次计算传入各组向量的第一个元素到FUN,进行结算得到结果;第二次传入各组向量的第二个元素,得到结果;第三次传入各组向量的第三个元素…以此类推。
参考地址:apply,sapply,lapply,tapply,vapply以及mapply的用法

你可能感兴趣的:(R语言)