小编lil*_*ter的帖子

将列名称分配给数据帧列表

我有一个数据框列表,其列有名称.

如果我想更改列表中数据框的名称(而不是父列表的名称),我不能通过names()或colnames()直接访问它们,而是必须使用lapply()来获取名称.

但是,如果我使用lapply返回列名,那么它们只存在于lapply调用中,并且我无法在父环境中为列表分配新名称.

这是下面的MWE:

1 /创建对象

require(xts)
data(sample_matrix)
x <- as.xts(sample_matrix)
y <- lapply(split(x, "months"), data.frame)
Run Code Online (Sandbox Code Playgroud)

2 /无法直接访问数据框的列名称

names(y)
Run Code Online (Sandbox Code Playgroud)

空值

colnames(y)
Run Code Online (Sandbox Code Playgroud)

空值

3 /我们可以尝试使用lapply

lapply(y, function(z) names(z) <- c('Op', 'Hi', 'Lo', 'Clo'))
Run Code Online (Sandbox Code Playgroud)

[[1]]

[1]"Op""Hi""Lo""Clo"......

但它实际上没有为对象分配名称.

r

9
推荐指数
1
解决办法
4706
查看次数

标签 统计

r ×1