首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >仅重命名数据帧列表中每个数据帧中的最后一列

仅重命名数据帧列表中每个数据帧中的最后一列
EN

Stack Overflow用户
提问于 2019-05-15 07:20:18
回答 1查看 473关注 0票数 0

我想要重命名我的每个数据帧中的最后一列,这些数据帧位于数据帧列表中。新名称对所有用户都是相同的。

我编写了提取最后一列(如下所示)的代码,但没有重命名最后一列标题的代码。

代码语言:javascript
复制
List <- lapply(List, function(x) x[,ncol(x)])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 07:25:47

你可以这样做

代码语言:javascript
复制
lapply(lst, function(x) {names(x) <- c(names(x[-length(x)]), "new_name");x})

#[[1]]
#                   mpg cyl disp  hp drat    wt  qsec vs am gear new_name
#Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4        4
#Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4        4
#Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4        1
#Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3        1
#Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3        2
#Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3        1

#[[2]]
#                   mpg cyl disp  hp drat    wt  qsec vs am gear new_name
#Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4        4
#Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4        4
#Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4        1
#Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3        1
#Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3        2
#Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3        1

或者@Shree提到的更简单的版本

代码语言:javascript
复制
lapply(lst, function(x) {names(x)[ncol(x)] <- "new_name";x})

我们也可以使用rename_at

代码语言:javascript
复制
library(dplyr)
library(purrr)

map(lst,. %>% rename_at(ncol(.), ~"new_name"))

data

代码语言:javascript
复制
lst <- list(head(mtcars), head(mtcars))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56139834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档