R语言 使用Dplyr选择变量(列)的方法
在这篇文章中,我们将使用dplyr库在R编程语言中选择变量或列。
使用中的数据集
用列名选择列
在这里,我们将使用select()方法,通过其名称来选择列。
语法
select(dataframe,column1,column2,.,column n)
这里,数据框是输入数据框,列是数据框中要显示的列。
例1: 选择列的R程序
# load the library
library(dplyr)
# create dataframe with 3 columns
# id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush',
'sravan','gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada',
'guntur','hyd','tenali','hyd'))
# select id column from the dataframe by
# column name
print(select(data1,id))
# select name column from the dataframe by
# column name
print(select(data1,name))
输出
例2 :选择多列的R程序
# load the library
library(dplyr)
# create dataframe with 3 columns
# id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush',
'sravan','gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada',
'guntur','hyd','tenali','hyd'))
# select multiple columns from the dataframe
# by column name
print(select(data1,id,name,address))
输出
通过位置选择列(s)
我们也可以使用列的位置,并使用select()方法获得列。位置从1开始。
语法
select(dataframe,column1_position,column2_position,., column n_position)
其中,dataframe是输入的数据框架,column position是一个列号。
对于选择多列,我们可以使用范围操作符”; “来按其位置选择列
语法
select(dataframe,start_position:end_position)
其中,dataframe是输入的数据框架,start_position是一个列号的起始位置,end_position是一个列号的结束位置。
例子1: R程序通过列的位置来选择特定的列
# load the library
library(dplyr)
# create dataframe with 3 columns
# id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush',
'sravan','gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada',
'guntur','hyd','tenali','hyd'))
# select first column by column position
print(select(data1,1))
# select third column by column position
print(select(data1,3))
输出
例2: 通过位置选择多列的R程序
# load the library
library(dplyr)
# create dataframe with 3 columns
# id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush','sravan',
'gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada','guntur',
'hyd','tenali','hyd'))
# select multiple column by column position
print(select(data1,1,2))
输出
例3: R程序用范围操作符按位置选择多列
# load the library
library(dplyr)
# create dataframe with 3 columns
# id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush','sravan',
'gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada','guntur',
'hyd','tenali','hyd'))
# select multiple column by column
# position with : operator
print(select(data1,1:3))
输出
选择包含一个值或匹配一个模式的列
在这里,我们将根据列中存在的值或模式来显示该列的值
方法1:使用contains()
显示包含给定子字符串的列
语法
select(dataframe,contains('sub_string'))
这里,dataframe是输入数据框,sub_string是列名中的字符串。
例子: 基于子字符串选择列的R程序
# load the library
library(dplyr)
# create dataframe with 3 columns
# id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush','sravan',
'gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada','guntur',
'hyd','tenali','hyd'))
# select column that contains am
print(select(data1,contains('am')))
# select column that contains d
print(select(data1,contains('d')))
# select column that contains dd
print(select(data1,contains('dd')))
输出
方法2:使用 matches()
它将检查并显示包含给定子字符串的那一列
select(dataframe,matches('sub_string'))
这里,dataframe是输入的数据框架,sub_string是列名中的字符串。
示例: 基于子字符串选择列的R程序
# load the library
library(dplyr)
# create dataframe with 3 columns
# id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush','sravan',
'gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada','guntur',
'hyd','tenali','hyd'))
# select column that matches with am
print(select(data1,matches('am')))
# select column that matches with d
print(select(data1,matches ('d')))
# select column that matches with dd
print(select(data1,matches ('dd')))
输出
选择以特定字符开始或结束的列
在这里,我们也可以根据开始和结束的字符来选择列。
- starts_with() 用于返回以给定字符开始的列。
语法
select(dataframe,starts_with(‘substring’))
其中,dataframe是输入的数据框架,substring是以它开始的字符/字符串。
- ends_with() 是用来返回以给定字符结束的列。
语法
select(dataframe,ends_with(‘substring’))
其中,dataframe是输入的数据框架,substring是以它结束的字符/字符串。
例子1: R程序显示以某个字符/子串开始的列
# load the library
library(dplyr)
# create dataframe with 3 columns id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush','sravan',
'gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada','guntur',
'hyd','tenali','hyd'))
# select column that starts with n
print(select(data1,starts_with('n')))
# select column that starts with add
print(select(data1,starts_with('add')))
输出
例2: R程序选择以指定字符串或字符结尾的列
# load the library
library(dplyr)
# create dataframe with 3 columns id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush','sravan',
'gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali','vijayawada',
'vijayawada','guntur','hyd','tenali','hyd'))
# select column that ends with ss
print(select(data1,ends_with('ss')))
# select column that ends with d
print(select(data1,ends_with('d')))
输出
选择所有列
我们可以通过使用everything()方法选择数据框中的所有列。
语法:
select(dataframe,everything())
例子 :选择所有列的R程序
# load the library
library(dplyr)
# create dataframe with 3 columns
# id,name and address
data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2),
name=c('sravan','ojaswi','bobby','gnanesh',
'rohith','pinkey','dhanush','sravan',
'gnanesh','ojaswi'),
address=c('hyd','hyd','ponnur','tenali',
'vijayawada','vijayawada','guntur',
'hyd','tenali','hyd'))
# select all columns using everything method
print(select(data1,everything()))
输出