将colnames()分配给数据框的特定列

Bra*_*sen 3 r

colnames对基础包中的函数有疑问

假设您有一个data.frame,如下所示:

df <- data.frame(variable = letters[1:100], value = rnorm(100))
Run Code Online (Sandbox Code Playgroud)

正如人们所料,colnames(df[1])回报:

colnames(df[1]) 
# [1] "variable"
Run Code Online (Sandbox Code Playgroud)

但是,调用特定列时似乎不能进行分配

colnames(df[1]) <- c("test")
colnames(df[1])
# [1] "variable"
Run Code Online (Sandbox Code Playgroud)

这是为什么?

Sha*_*ane 7

因为你应该这样做:

> colnames(df)[1] <- "test"
> colnames(df)[1]
[1] "test"
Run Code Online (Sandbox Code Playgroud)

colnames函数返回可以更改的字符向量.