假設我有兩個資料框的串列。
Name1 <- c("Jon", "Bill", "Maria")
Age1 <- c(23, 41, 32)
df1 <- data.frame(Name1, Age1)
Name2 <- c("Sally", "Tom")
Age2 <- c(25, 32)
Height <- c(56, 55)
df2 <- data.frame(Name2, Age2, Height)
list1 <- list(df1, df2)
list1
[[1]]
Name1 Age1
1 Jon 23
2 Bill 41
3 Maria 32
[[2]]
Name2 Age2 Height
1 Sally 25 56
2 Tom 32 55
我還有另一個列名串列,每個資料框都不同,因為它們的列號不一致。
list2 <- list( c("Names", "Age"), c("Names", "Age", "Height"))
list2
[[1]]
[1] "Names" "Age"
[[2]]
[1] "Names" "Age" "Height"
如何將 list2 中的值指定為 list1 的列名?
uj5u.com熱心網友回復:
您可以使用一個簡單的 for 回圈來同時沿兩個串列進行迭代:
for (i in seq_along(list1)){
colnames(list1[[i]]) <- list2[[i]]
}
# [[1]]
# Names Age
# 1 Jon 23
# 2 Bill 41
# 3 Maria 32
#
# [[2]]
# Names Age Height
# 1 Sally 25 56
# 2 Tom 32 55
如果您在每個 df 中具有相同數量的列和名稱向量,則使用lapply
它來使其更簡單:
lapply(list1, setNames, list2)
有關詳細資訊,請參閱在 R 中更改資料框串列中的列名。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/505282.html