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

问题描述 投票:2回答:2

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

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"
r dataframe data-manipulation
2个回答
0
投票

您可以通过选择您的信件来执行所需的过程。 您可以使用assign和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


0
投票

您可以这样做以选择列。

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

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

small.df <- current.df[, grepl("^B", names(current.df))]
© www.soinside.com 2019 - 2024. All rights reserved.