R语言中依据列名提取列

 

1、直接依据列名提取

复制代码
> a <- 1:5
> b <- letters[1:5]
> c <- LETTERS[1:5]
> d <- letters[6:10]
> dat <- data.frame(a, b, c, d)
> dat
  a b c d
1 1 a A f
2 2 b B g
3 3 c C h
4 4 d D i
5 5 e E j
> dat[, "c"]                   ## 依据列名c提取列
[1] "A" "B" "C" "D" "E"
> dat[,c("a", "d")]            ## 提取a、d列
  a d
1 1 f
2 2 g
3 3 h
4 4 i
5 5 j
复制代码

 

2、subset实现

复制代码
> a <- 1:5
> b <- letters[1:5]
> c <- LETTERS[1:5]
> d <- letters[6:10]
> dat <- data.frame(a, b, c, d)
> dat
  a b c d
1 1 a A f
2 2 b B g
3 3 c C h
4 4 d D i
5 5 e E j
> subset(dat, select = b)             ## 提取b列
  b
1 a
2 b
3 c
4 d
5 e
> subset(dat, select = c(a, c))       ## 提取a,c列
  a c
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
复制代码

 

3、%in%in实现

复制代码
> a <- 1:5
> b <- letters[1:5]
> c <- LETTERS[1:5]
> d <- letters[6:10]
> dat <- data.frame(a, b, c, d)
> dat
  a b c d
1 1 a A f
2 2 b B g
3 3 c C h
4 4 d D i
5 5 e E j
> dat[, colnames(dat) %in% "b"]            ## 提取b列
[1] "a" "b" "c" "d" "e"
> dat[, colnames(dat) %in% c("a", "c")]    ## 提取a、c列
  a c
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
复制代码

 

4、grep、grepl实现

复制代码
> a <- 1:5
> b <- letters[1:5]
> c <- LETTERS[1:5]
> d <- letters[6:10]
> dat <- data.frame(a, b, c, d)
> dat
  a b c d
1 1 a A f
2 2 b B g
3 3 c C h
4 4 d D i
5 5 e E j
> dat[, grep("b", colnames(dat))]         ## 提取b列
[1] "a" "b" "c" "d" "e"
> dat[, grep("b|c", colnames(dat))]       ## 提取b、c列
  b c
1 a A
2 b B
3 c C
4 d D
5 e E
> dat[, grepl("c", colnames(dat))]        ## 提取c列
[1] "A" "B" "C" "D" "E"
> dat[, grepl("a|c", colnames(dat))]      ## 提取a、c列
  a c
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
复制代码

 

posted @   小鲨鱼2018  阅读(5081)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-05-09 python中global关键字实现在函数内部对全局变量进行修改
2020-05-09 redhat7 配置Yun软件仓库
2020-05-09 《Linux就该这么学》学习笔记 04
点击右上角即可分享
微信分享提示