3

给定一个与数据框隔离的变量,如何获得它的名称?它需要在内部完成索引的函数中工作(例如,应用)。

df<-data.frame(a=1:10,b=1:10)

names(df[,1])

产生:

>NULL

test<-df[,1]
test[0]

这是一个可能有用的示例:

library(plyr)
relabel<-colwise(function(column){
  column<-paste(names(column),column)})
relabel(df)

data.frame(a=c(.1,.2,.3,...), b=c(.1,.2,...))

期望的结果是:

data.frame(a=c('a.1','a.2','a.3'), b=c('b.1','b.2', 'b.2'))
4

1 回答 1

4

drop = FALSE在索引中使用参数,如下所示:

df<-data.frame(a=1:10,b=1:10)

names(df[,1, drop=FALSE])

这是一个执行您正在寻找的功能的功能:

namer.guy <- function(x) paste(rep(names(x), nrow(x)),  unlist(x), sep=".")

namer.guy(df[, 1, drop=F])

编辑:Per Etienne Low-Decarie 的要求...

namer.guy2 <- function(df){
    name.paster <- function(i) paste(names(df)[i], df[, i], sep=".")
    DF <- data.frame(sapply(seq_along(df), name.paster))
    names(DF) <- names(df)
    return(DF)
}

namer.guy2(df)
于 2012-05-05T04:20:04.163 回答