让我说我正在尝试重命名数据框中的一些变量。
>dat = data.frame(var1 = 1:10, var2 = letters[1:10], var3 = LETTERS[1:10])
>names(dat[,1:2]) = c("VAR_1", "VAR_2")
>names(dat)
返回
>[1] "var1" "var2" "var3
,而
>names(dat)[1:2] = c("VAR_1", "VAR_2")
>name(dat)
成功重命名列。
> [1] "VAR_1" "VAR_2" "var3"
为什么第二种方法有效,但第一种方法失败了?
答案 0 :(得分:3)
dat[,1:2]
是dat
的子集副本,而不是原始副本。因此,您在第一个示例中修改此副本的名称,并立即丢弃该副本,原始文件保持不变。