从R中的数据框中提取具有相同标题的变量

时间:2018-02-28 20:50:19

标签: r dataframe data-manipulation

我有一个庞大的数据集。这是一个例子:

Ac.1<-rnorm(100, 0, 1)
At.2<-rnorm(100, 0, 1)
Ae.3<-rnorm(100, 0, 1)
Ba.1<-rnorm(100, 0, 1)
Bc.2<-rnorm(100, 0, 1)
Be.3<-rnorm(100, 0, 1)
Cb.1<-rnorm(100, 0, 1)
Cy.2<-rnorm(100, 0, 1)
Cc.3<-rnorm(100, 0, 1)

当前数据集如下所示:

current.df<-data.frame(Ac.1,Ae.3,Ba.1,At.2,Bc.2,Cb.1,Cy.2,Be.3,Cc.3)

我想创建具有相同标题“B”的小日期框架,名为small.df。它应该看起来像

name(small.df)
[1] "Ba.1" "Bc.2" "Be.3"

2 个答案:

答案 0 :(得分:0)

您可以这样做以选择列。

small.df <- current.df[, c("Ba.1", "Bc.2", "Be.3")]

或者选择以“B”开头的所有列。

small.df <- current.df[, grepl("^B", names(current.df))]

答案 1 :(得分:0)

您可以通过选择您的信件来执行所需的过程 您可以结合使用assign&amp; regexpr找到你的col并分配最终的DF:

#Chose your Letter
 letter <- "B"

#Find columns in colnames with a regexpr
cols <- which(regexpr(paste0("^",letter),names(current.df)) != -1)

#Assign a letter variable dependant name to your new DF
assign(paste0(letter,".small.df"),current.df[,cols])

希望能帮助

Gottavianoni