R语言 如何使用Dplyr包删除一列
在这篇文章中,我们将使用dplyr库在R编程语言中删除一列(几个)。
使用中的数据集 。
使用列名删除列
在这里,我们将使用select()方法来选择并通过其名称删除列。
语法
select(dataframe,-column_name)
这里,dataframe是输入数据框,column_name是数据框中要删除的列。
要删除多个列。
语法
select(dataframe,-c(column1,column2,. , column n))
这里,dataframe是输入的数据框架,列是数据框架中要删除的列。
例子: 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'))
# remove id and name
print(select(data1,-c(name,id)))
输出
按位置删除列
在这里,我们将使用列索引或位置来删除列。我们将使用select()方法,通过移除一个列的位置来选择它。
注意: 索引从1开始
语法
select(dataframe,-index)
这里,dataframe是输入数据框架,index是要移除的数据框架中的列位置。
要删除多个列。
语法
select(dataframe,-c(index1,index2,.,index n))
这里,dataframe是输入的数据框架,indexes是要删除的数据框架中的列的位置。
例子: 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'))
# remove id
print(select(data1,-id))
# remove multiple columns- name,id
print(select(data1,-c(name,id)))
输出
删除包含一个值或匹配一个模式的列
让我们讨论一下如何删除包含字符或字符串的列。
方法1:使用contains()
contains() 可以删除包含给定子串的列。
语法
select(dataframe,-contains(‘sub_string’))
这里,dataframe是输入的数据框架,sub_string是列名中存在的字符串,将被移除。
方法2:使用 matches()
matches() 删除包含给定子串的列。
语法
select(dataframe,-matches(‘sub_string’))
这里,dataframe是输入的数据框架,sub_string是存在于列名中的字符串,将被删除。
例子: 使用contains()方法删除列的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'))
# remove column that contains na
print(select(data1,-contains('na')))
# remove column that contains re
print(select(data1,-contains('re')))
输出
移除以特定字符开始或结束的列
在这里,我们也可以根据开始和结束的字符来选择列。
- starts_with() 用于返回以给定字符开始的列。
语法
select(dataframe,-starts_with(‘substring’))
其中,dataframe是输入的数据框架,substring是以它开始的字符/字符串。
- ends_with() 用于返回以给定字符结束的列。
语法
select(dataframe,-ends_with(‘substring’))
其中,dataframe是输入的数据框架,substring是以它结束的字符/字符串。
例子: 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'))
# remove column that starts with na
print(select(data1,-starts_with('na')))
# remove column that starts with ad
print(select(data1,-starts_with('ad')))
输出
例子: 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'))
# remove column that ends with d
print(select(data1,-ends_with('d')))
# remove column that starts with ss
print(select(data1,-ends_with('ss')))
输出