我想加入变量名称,这意味着我应该对它们做些什么。我想象一个数据框“调查”。

library(Rlab) # Needed for rbern() function.
survey <- data.frame(cbind(  
id = seq(1:10),  
likert_this = sample(seq(1:7),10, replace=T),  
likert_that = sample(seq(1:7), 10, replace=T),  
dim_bern_varx = rbern(10, 0.6),  
disc_1 = sample(letters[1:5],10,replace=T)))

现在我想对包含 likert 的所有变量做一些事情,其他的变量包含 bern 等。

如何在R?

中完成
有帮助吗?

解决方案

您可以将 grep() colnames()一起使用:

survey[,grep("bern", colnames(survey))]

其他提示

如果你有一系列你喜欢的名字,你也可以使用匹配。也许你经常需要变量“脉冲”,“运动”,“身高”,“体重”等。和“年龄”,但它们有时会出现在不同的地方或与其他增加的变量。您可以保存常用名称的向量,然后将它们与数据帧匹配,并按照您想要的顺序使用新标准列的df。

basenames <- c("pulse", "exercise", "height", "weight", "age")
get.columns <- match(basenames, names(dataframe))
new.df <- dataframe[,get.columns]

“运营商”包允许一些类似Perl的语法:

library(operators)

survey[, colnames(survey) %~% "bern"]

subset(survey, select = colnames(survey) %~% "bern")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top