R语言数据处理之选择特定的列
R语言数据处理是一个繁琐的过程,需要不断对数据进行选择,清洁处理。面对一个多特征列的数据集,如何快速的选择我们需要的列的数据,是一个需要磨练的过程。
今天学习的过程中,学习到了几个简单的函数,在这里总结一下并和大家分享一下。
tidyverse包相信大家都不陌生,其中dplyr包中的select()函数可以根据列名,列所在的位置对特定的一列或多列数据进行选择并提取出来,当然这个过程需要我们知晓列的具体名字或者具体的位置,如果我们只知道模糊的关键词,这时候需要去colname()或者view()查看具体的列名,较为麻烦。此外,我们需要选择多个具有共同特点的列时,逐一选择,需要不断地view(),不能偷懒,这个时候,今天学习的函数将会帮助我们更加便捷的选择特定的列。
先让我们一起看看这几个函数
其中,starts_with(),ends_with()以及contains()是提取列名中特定元素的方式,matches()函数是表达式选择的方式。
接下来对几个函数的运用进行代码练习
require(tidyverse)#加载包
require(dplyr)#加载包
install.packages('tidyr')
require(tidyr)
data <- iris
data2 <- billboard
先看看鸢尾花数据集和billboard数据集的样子
starts_with,匹配列名的前缀关键词
df <- data%>% select(starts_with("Sepal"))
head(df)
df <- data %>% select(starts_with(c("Pe", "Se")))
head(df)`
结果如图
ends_with,匹配列名的后缀关键词
df <- data %>% select(ends_with("Width"))
head(df)
df <- data %>% select(ends_with(c("Width", "Length")))
head(df)
df <- data %>% select(ends_with('th'))
head(df)
contains选择列名中包含的特定元素
df <- data %>% select(contains("len"))
head(df)
df <- data %>% select(contains("wid"))
head(df)
metches根据表达式选择其中的特定的列
df <- data %>% select(matches("[pt]al"))
head(df)
df <- data %>% select(matches("[PS]e"))
head(df)
需要注意的是 [] 中的内容,这个[]的用法还不是很了解,通过不断的换取字母测试,[]中的内容是列名中含有的,或的关系,[]外的匹配括号里后面接着的内容
num_range选择特定的元素并限制在特定的编号内
data2 <- billboard
df <- data2 %>% select(starts_with('wk'))
head(df)
df <- data2%>% select(num_range("wk", 10:15))
head(df)