[英]Change column names for multiple data frames in a loop
我有四個不同河流數據集的四個數據框(河流是 Main、Danube、Isar 和 Inn)。 數據框的維度相同,命名如下:“df_Main”、“df_Danube”、“df_Isar”和“df_Inn”。 為了方便以后繪圖,我需要所有數據框都具有相同的列名。 我認為可以通過以下方式輕松實現:
rivers <- c("Main", "Danube", "Isar", "Inn")
for (i in 1:length(rivers)) {
colnames(get(paste0("df_", rivers[i]))) <- c("bla", "bla", "bla", "bla")
}
但這不起作用。 有人有想法嗎?
如果你想 go 這樣你可能需要 function assign
。 舉個例子:
rivers <- c("df_Main", "df_Danube", "df_Isar", "df_Inn")
for (i in rivers) {
x=get(i)
colnames(x) <- c("bla", "bla", "bla", "bla")
assign(i,x)
}
如果您需要為超過 4 個 data.frames 執行此操作,您可能應該檢查應用 function。
不過,如果您打算通過 ggplot2 將它放在 plot 中,那么將它放在單個 df 中可能會更有用。
一個偽代碼
library(purrr) # using purrr for map function
# create a list of 4 data frame
# another alternatives is define the initial list with names
list_4_river_df <- list(df_Main = df_Main, df_Danube = df_Danube,
df_Isar = df_Isar, df_Inn = df_Inn)
# map setNames to each dataframe in the list
list_4_river_df <- map(list_4_river_df, setNames, nm = c("bla_1", "bla_2", "bla_3", "bla_4", "bla_5"))
# then list2env should work perfectly
list2env(list_4_river_df,envir = .GlobalEnv)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.