
merger <- cbind(as.character(Date),weather1$High,weather1$Low,weather1$Avg..High,weather1$Avg.Low,sale$Scanned.Movement[a])
Run Code Online (Sandbox Code Playgroud)
在cbind数据之后,新DF自动列名V1,V2......我想重命名列
colnames(merger)[,1] <- "Date"
Run Code Online (Sandbox Code Playgroud)
但失败了.当我使用时merger$V1,
Error in merger$V1 : $ operator is invalid for atomic vectors
Run Code Online (Sandbox Code Playgroud)
dak*_*les 59
您还可以直接在cbind呼叫中命名列,例如
cbind(date=c(0,1), high=c(2,3))
Run Code Online (Sandbox Code Playgroud)
输出:
date high
[1,] 0 2
[2,] 1 3
Run Code Online (Sandbox Code Playgroud)
joh*_*nes 12
尝试:
colnames(merger)[1] <- "Date"
Run Code Online (Sandbox Code Playgroud)
这是一个简单的例子:
a <- 1:10
b <- cbind(a, a, a)
colnames(b)
# change the first one
colnames(b)[1] <- "abc"
# change all colnames
colnames(b) <- c("aa", "bb", "cc")
Run Code Online (Sandbox Code Playgroud)
你在问题中给出了以下例子:
colnames(merger)[,1]<-"Date"
Run Code Online (Sandbox Code Playgroud)
问题是逗号:colnames()返回一个向量,而不是一个矩阵,所以解决方案是:
colnames(merger)[1]<-"Date"
Run Code Online (Sandbox Code Playgroud)