[英]How To Change Column Names of Data Frames In A List
我有一個數據框列表,並且想要更改此列表包含的每個子數據框的列名的一部分 。
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-
。
我在代碼下面累了,但似乎沒有用。 關於如何執行此操作的任何建議?
names(data$`A-DIODE`) <- "Z-DIODE"
names(data$`B-DIODE`) <- "P-DIODE"
....
....
您可以使用lapply函數。 lapply將允許您更改列表中每個數據框的名稱。
在上面的示例中,讓您將列表命名為數據。 A和B是嵌套在列表中的數據框。 更改列表中數據框中特定名稱的列名稱
data=lapply(data,function(x){
names(x)[which(names(x)=="A-DIODE")]="Z-DIODE"
names(x)[which(names(x)=="B-DIODE")]="P-DIODE"
x
}
)
您可以將lapply()
與stringi包中的矢量化函數一起使用以進行替換。
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
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.