首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改列表中数据帧的列名

如何更改列表中数据帧的列名
EN

Stack Overflow用户
提问于 2019-02-07 22:12:10
回答 2查看 58关注 0票数 0

我有一个数据帧列表,并希望更改该列表所包含的每个子数据帧的列名的部件

代码语言:javascript
复制
list(A = structure(list(`A-DIODE` = c(1.2, 0.4), `A-DIODE` = c(1.3, 
0.6)), row.names = c(NA, -2L), class = "data.frame"), B = structure(list(
    `B-DIODE` = c(1.4, 0.8), `B-ACC1` = c(1.5, 1), `B-ACC2` = c(1.6, 
    1.2), `B-ANA0` = c(1.7, 1.4), `B-ANA1` = c(1.8, 1.6), `B-BRICKID` = c(1.9, 
    1.8), `B-CC0` = c(2L, 2L), `B-CC1` = c(2.1, 2.2), `B-DIGDN` = c(2.2, 
    2.4), `B-DIGDP` = c(2.3, 2.6), `B-DN1` = c(2.4, 2.8), `B-DN2` = c(2.5, 
    3), `B-DP1` = c(2.6, 3.2), `B-DP2` = c(2.7, 3.4), `B-SCL` = c(2.8, 
    3.6), `B-SDA` = c(2.9, 3.8), `B-USB0DN` = 3:4, `B-USB0DP` = c(3.1, 
    4.2), `B-USB1DN` = c(3.2, 4.4), `B-USB1DP` = c(3.3, 4.6), 
    `B-ACC1` = c(3.4, 4.8), `B-ACC2` = c(3.5, 5), `B-ANA0` = c(3.6, 
    5.2), `B-ANA1` = c(3.7, 5.4), `B-BRICKID` = c(3.8, 5.6), 
    `B-CC0` = c(3.9, 5.8), `B-CC1` = c(4L, 6L), `B-DIGDN` = c(4.1, 
    6.2), `B-DIGDP` = c(4.2, 6.4), `B-DN1` = c(4.3, 6.6), `B-DN2` = c(4.4, 
    6.8), `B-DP1` = c(4.5, 7), `B-DP2` = c(4.6, 7.2), `B-SCL` = c(4.7, 
    7.4), `B-SDA` = c(4.8, 7.6), `B-USB0DN` = c(4.9, 7.8), `B-USB0DP` = c(5L, 
    8L), `B-USB1DN` = c(5.1, 8.2), `B-USB1DP` = c(5.2, 8.4), 
    `B-NA` = c(5.3, 8.6), `B-ACC2PWRLKG_0v4` = c(5.4, 8.8), `B-ACC2PWRLKG_0v4` = c(5.5, 
    9), `B-P_IN_Leak` = c(5.6, 9.2)), row.names = c(NA, -2L), class = "data.frame"))

我希望将上面数据帧中的A-更改为Z-,然后将列表中的另一个数据帧中的B-更改为P-

我厌倦了下面的代码,但它似乎不起作用。对我怎么做有什么建议吗?

代码语言:javascript
复制
names(data$`A-DIODE`) <- "Z-DIODE"
names(data$`B-DIODE`) <- "P-DIODE"
....
....
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-08 00:42:09

您可以使用lapply()和stringi包中的一个向量化函数来进行替换。

代码语言:javascript
复制
library(stringi)

lapply(x0, function(x) {
    out <- stri_replace_all_regex(names(x), c("^A-", "^B-"), c("Z-", "P-"), vectorize_all = FALSE)
    names(x) <- out
    x
})
票数 1
EN

Stack Overflow用户

发布于 2019-02-07 22:54:51

您可以使用lapply函数。lapply将允许您更改列表中每个dataframe的名称。

在上面的例子中,让我们将列表命名为数据。A和B是嵌套在列表中的数据格式。更改列表中dataframes中特定名称的列名

代码语言:javascript
复制
data=lapply(data,function(x){
names(x)[which(names(x)=="A-DIODE")]="Z-DIODE"
names(x)[which(names(x)=="B-DIODE")]="P-DIODE"
x
}
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54583120

复制
相关文章

相似问题

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