我有一个数据框列表,其列有名称。
如果我想更改列表中数据框的名称(而不是父列表的名称),我无法通过 names() 或 colnames() 直接访问它们,而必须使用 lapply() 来获取名称。
但是,如果我使用 lapply 返回列名,那么它们只存在于 lapply 调用中,并且我无法为父环境中的列表分配新名称。
这是下面的MWE:
1/ 创建对象
require(xts)
data(sample_matrix)
x <- as.xts(sample_matrix)
y <- lapply(split(x, "months"), data.frame)
2/ 数据框的列名不能直接访问
names(y)
无效的
colnames(y)
无效的
3/ 我们可以尝试使用 lapply
lapply(y, function(z) names(z) <- c('Op', 'Hi', 'Lo', 'Clo'))
[[1]]
[1] “Op” “Hi” “Lo” “Clo” ...
但它实际上并没有为该对象分配名称。