R中选择数据框的列

在本教程中,您将学习如何使用R函数select()和pull()[在dplyr包中]按名称和位置选择数据框的列。我们还将展示如何从数据框架中删除列。

包含以下函数:

pull(): 以向量的形式提取列值. 可以通过名称或索引指定感兴趣的列。

select():将一个或多个列提取为一个数据表。它还可以用于从数据框架中删除列。

select_if(): 根据特定条件选择列。例如,可以使用这个函数来选择列(如果它们是数值型的)。

帮助函数 - starts_with(), ends_with(), contains(), matches(), one_of(): Select columns/variables based on their names

需要的包

加载 tidyverse 包,该R包中包含 dplyr 包:

library(tidyverse)

示例数据

我们将使用R内置的iris数据集,首先将其转换为tibble数据框(tbl_df),以便于进行数据分析。

my_data <- as_tibble(iris)

my_data

以向量vector 的形式提取列值

my_data %>% pull(Species)

将列提取为数据表

1)按位置选择列

#选择1至3列

my_data %>% select(1:3)

#选择1和3列,不要2列

my_data %>% select(1,3)

按名称选择列

#按名称选择下面两列 Sepal.Length and Petal.Length

my_data %>% select(Sepal.Length, Petal.Length)

#选择 Sepal.Length 至 Petal.Length之间的所有列

my_data %>% select(Sepal.Length:Petal.Length)

有几个特殊的函数可以在  select()  函数里面使用  starts_with(), ends_with(), contains(), matches(), one_of(), 等.

# 选择 名字以 "Petal" 开头的所以列

my_data %>% select(starts_with("Petal"))

# 选择 名字以  "Width" 结尾的所以列

my_data %>% select(ends_with("Width"))

# 选择名字中包含 "etal" 字符的所有列

my_data %>% select(contains("etal"))

# 选择其名称包含正则表达式的列

my_data %>% select(matches(".t."))

# 选择字符向量中提供的变量的所有列

my_data %>% select(one_of(c("Sepal.Length","Petal.Length")))

基于一个条件选择列

可以对列应用一个函数。选择函数返回TRUE的列。

只选择数值型的列:

my_data %>% select_if(is.numeric)

删除列

若要从数据框架中删除列,请在其名称前加上一个减号 -.

#删除 Sepal.Length 和 Petal.Length 列

my_data %>% select(-Sepal.Length, -Petal.Length)

#删除从 Sepal.Length 至 Petal.Length之间的所有列

my_data %>% select(-(Sepal.Length:Petal.Length))

#删除所有名称以 “Petal” 开头的列

my_data %>% select(-starts_with("Petal"))

注意,如果希望按位置放置列,语法如下所示。

# 删除第一列

my_data %>% select(-1)

# 删除1至3列

my_data %>% select(-(1:3))

# 删除第一和第三列,保留第二列

my_data %>% select(-1, -3)

总结

在本教程中,我们介绍如何根据位置和名称选择列。此外,我们还介绍了如何从数据框架中删除列。

你可能感兴趣的:(R中选择数据框的列)