R语言 使用Dplyr包删除多列数据

R语言 使用Dplyr包删除多列数据

在这篇文章中,我们将讨论如何使用R编程语言中的dplyr包删除多列。

使用中的数据集

使用R语言中的Dplyr包删除多列数据

通过使用 列名删除多列

我们可以用select()方法通过列名删除一列

语法:

select(dataframe,-c(column_name1,column_name2,.,column_name n)

其中,dataframe是输入的数据框架,-c(column_names)是要删除的列的名称集合。

例子: 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 name and id  column
print(select(data1,-c(id,name)))
  
# remove name and address column
print(select(data1,-c(address,name)))
  
# remove all column
print(select(data1,-c(address,name,id)))

输出

使用R语言中的Dplyr包删除多列数据

通过使用列索引删除多列

我们可以用select()方法通过它的列索引/位置来删除一个列。索引从1开始。

语法

select(dataframe,-c(column_index1,column_index2,.,column_index n)

其中,dataframe是输入的数据框架,c(column_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 name and id  columns by 
# its position
print(select(data1,-c(1,2)))

输出

使用R语言中的Dplyr包删除多列数据

删除包含一个值或匹配一个模式的列

让我们看看如何删除包含字符/字符串的列。

方法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')))

输出

使用R语言中的Dplyr包删除多列数据

删除以特定字符开始或结束的列

在这里,我们也可以根据开始和结束的字符来选择列。

  • starts_with() 用于返回以给定字符开始的列,而 -starts_with() 则用于删除以给定字符开始的列。

语法

select(dataframe,-starts_with(‘substring’))

其中,dataframe是输入的数据框架,substring是以它开始的字符/字符串。

  • ends_with() 用于返回以给定字符结束的列, -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'))
  
  
# 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语言中的Dplyr包删除多列数据

例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'))
  
  
# remove column that ends with d
print(select(data1,-ends_with('d')))
      
# remove column that starts with ss
print(select(data1,-ends_with('ss')))

输出

使用R语言中的Dplyr包删除多列数据

用正则表达式删除列名

在这里,我们将根据grepl()函数中给出的模式来删除列。它将找到一个模式,并根据给定的模式删除该列。

语法

dataframe[,!grepl("mode",names(dataframe))]

这里,dataframe是输入的数据框架,pattern是要删除的列的表达式。

删除列中起始字符所在的列的模式是

语法

data[,!grepl("^letter",names(data))]

例子: 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'))
  
  
# drop  column that starts with n
print(data1[,!grepl("^n",names(data1))])
      
# remove column that starts with a
print(data1[,!grepl("^a",names(data1))])

输出

使用R语言中的Dplyr包删除多列数据

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程