为什么我不能重命名列表中的数据框列?

时间:2014-06-03 00:29:45

标签: r list dataframe names

我想在合并数据帧之前将CPU_Usage中的一些列重命名为进程名称,以使其更清晰。

names(byProcess[[1]])
# [1] "Time"      "CPU_Usage"
names(byProcess[1])
# [1] "CcmExec_3344"
names(byProcess[[1]][2]) <- names(byProcess[1])
names(byProcess[[1]][2])
# [1] "CPU_Usage"
names(byProcess[[1]][2]) <- 'test'
names(byProcess[[1]][2])
# [1] "CPU_Usage"
lapply(byProcess, names)
# $CcmExec_3344
# [1] "Time"      "CPU_Usage"
#
# ... (removed several entries to make it more readable)
#
# $wrapper_1604
# [1] "Time"      "CPU_Usage"

1 个答案:

答案 0 :(得分:5)

names(l[[1]][2])返回l[[1]][2]对象的名称。在您的情况下,这将是一个data.frame,其中一列(CPU_Usage)使用names<-将替换此新对象上的名称(而不是替换l[[1]]

如果您想在names<-上使用l[[1]],则需要将此作为names<-的参数

所以

names(byProcess[[1])[2] <- names(byProcess[1])

执行您想要的操作