前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >专题4 隐式循环、专题5 数据框连接

专题4 隐式循环、专题5 数据框连接

原创
作者头像
用户11064093
发布2024-04-18 14:06:27
920
发布2024-04-18 14:06:27

矩阵和数据框每行每列处理 列表向量中每个元素处理

apply()族函数

1.apply 处理矩阵或数据框

代码语言:r
复制
#apply(X, MARGIN, FUN, …) 
#其中X是数据框/矩阵名;
#MARGIN为1表示行,为2表示列,FUN是函数

test<- iris[1:6,1:4]

apply(test, 2, mean) # 对test的每一列求平均
代码语言:r
复制
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##    4.9500000    3.3833333    1.4500000    0.2333333
代码语言:r
复制
apply(test, 1, sum) # 对test的每一行求和
代码语言:r
复制
##    1    2    3    4    5    6 
## 10.2  9.5  9.4  9.4 10.2 11.4
代码语言:r
复制
head()# 取前几个
tail()# 取后几个

2.lapply(list, FUN, …)

代码语言:r
复制
# 对列表/向量中的每个元素实施相同的操作 得到列表
lapply(1:4,rnorm)
代码语言:r
复制
## [[1]]
## [1] -0.1125071
## 
## [[2]]
## [1] -0.7722204  0.2188351
## 
## [[3]]
## [1] -0.2324538 -0.4484360 -2.0208578
## 
## [[4]]
## [1] 0.59086709 0.48062406 0.05737153 1.20811435
代码语言:r
复制
sapply() # 简化为向量或矩阵,不能简化返回和lapply一样的结果

数据框连接

代码语言:r
复制
# 示例数据
test1 <- data.frame(name = c('jimmy','nicker','Damon','Sophie'), 
                    blood_type = c("A","B","O","AB"))
test1
代码语言:r
复制
##     name blood_type
## 1  jimmy          A
## 2 nicker          B
## 3  Damon          O
## 4 Sophie         AB
代码语言:r
复制
test2 <- data.frame(name = c('Damon','jimmy','nicker','tony'),
                    group = c("group1","group1","group2","group2"),
                    vision = c(4.2,4.3,4.9,4.5))
test2
代码语言:r
复制
##     name  group vision
## 1  Damon group1    4.2
## 2  jimmy group1    4.3
## 3 nicker group2    4.9
## 4   tony group2    4.5
代码语言:r
复制
library(dplyr)
inner_join(test1,test2,by="name") #取交集
代码语言:r
复制
##     name blood_type  group vision
## 1  jimmy          A group1    4.3
## 2 nicker          B group2    4.9
## 3  Damon          O group1    4.2
代码语言:r
复制
left_join(test1,test2,by="name") #以左边(test1)为准连接
代码语言:r
复制
##     name blood_type  group vision
## 1  jimmy          A group1    4.3
## 2 nicker          B group2    4.9
## 3  Damon          O group1    4.2
## 4 Sophie         AB   <NA>     NA
代码语言:r
复制
right_join(test1,test2,by="name")
代码语言:r
复制
##     name blood_type  group vision
## 1  jimmy          A group1    4.3
## 2 nicker          B group2    4.9
## 3  Damon          O group1    4.2
## 4   tony       <NA> group2    4.5
代码语言:r
复制
full_join(test1,test2,by="name") # 取全集,NA补充缺失值
代码语言:r
复制
##     name blood_type  group vision
## 1  jimmy          A group1    4.3
## 2 nicker          B group2    4.9
## 3  Damon          O group1    4.2
## 4 Sophie         AB   <NA>     NA
## 5   tony       <NA> group2    4.5

生信技能树

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 矩阵和数据框每行每列处理 列表向量中每个元素处理
  • apply()族函数
    • 1.apply 处理矩阵或数据框
      • 2.lapply(list, FUN, …)
      • 数据框连接
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档