如何将标题分配给数据框?

时间:2014-09-13 21:04:20

标签: r

我有以下内容(只是代码的一部分)

         dat <-  rbind(dat,sum(complete.cases(read.csv(files_list[i]))))
    }
     data.frame(id,dat)

但我得到以下内容。如何将第二列的标题更改为“值”?

   id X1041L
1  2   1041
2  4    474
3  8    192
4 10    148
5 12     96

1 个答案:

答案 0 :(得分:1)

您可以使用names<-分配功能

names(dat)[2] <- "value"

您也可以使用setNames,这与names<-基本相同,但更改的数据会作为结果返回。

setNames(dat, c(names(dat)[1], "value"))

更新:为避免names进行某些复制,您还可以使用attr<-

attr(dat, "names")[2] <- "value"

正如Ananda在评论中所提到的,没有复制,可以使用data.table

library(data.table)
setnames(dat, "X1041L", "value")

以下是复制:

> tracemem(dat)
# [1] "<0x23289b0>"
> names(dat)[2] <- "value"
# tracemem[0x23289b0 -> 0x26a1270]: 
# tracemem[0x26a1270 -> 0x2244030]: 
# tracemem[0x2244030 -> 0x26b9508]: 
> tracemem(dat)
# [1] "<0x26b9508>"
> attr(dat, "names")[2] <- "value"
# tracemem[0x26b9508 -> 0x23dbd50]: 
> library(data.table)
> tracemem(dat)
# [1] "<0x28c4408>"
> setnames(dat, "X1041L", "value")