创建列表时使用数据框名称 of/from 个数据框
Use data frame names when creating a list of/from data frames
我有三个数据框:df1
、df2
、df3
。
我想将它们合并成一个列表:
dataframes <- list(df1, df2, df3)
如何将每个数据框的名称用于其对应的列表元素名称?
所以不是这个:
> names(dataframes)
[1] "" "" ""
我明白了:
> names(dataframes)
[1] "df1" "df2" "df3"
这是一个使用循环的选项。我假设 df1
、df2
和 df3
是数据帧,并且已在某处定义。
i <- 1
lst <- list() # an empty list
while (i <= 3) {
df_name <- paste0("df", i)
lst[[i]] <- get(df_name)
names(lst)[i] <- df_name
i <- i + 1
}
names(lst)
[1] "df1" "df2" "df3"
虽然许多人认为在 R 中使用循环是邪恶的,但上述情况并没有那么糟糕,因为我们只是随着循环的进行,一个接一个地添加新的列表项(及其名称)。
您需要在创建列表时为它们命名:
dataframes <- list(df1=df1, df2=df2, df3=df3)
names(dataframes)
#"df1" "df2" "df3"
我有三个数据框:df1
、df2
、df3
。
我想将它们合并成一个列表:
dataframes <- list(df1, df2, df3)
如何将每个数据框的名称用于其对应的列表元素名称?
所以不是这个:
> names(dataframes)
[1] "" "" ""
我明白了:
> names(dataframes)
[1] "df1" "df2" "df3"
这是一个使用循环的选项。我假设 df1
、df2
和 df3
是数据帧,并且已在某处定义。
i <- 1
lst <- list() # an empty list
while (i <= 3) {
df_name <- paste0("df", i)
lst[[i]] <- get(df_name)
names(lst)[i] <- df_name
i <- i + 1
}
names(lst)
[1] "df1" "df2" "df3"
虽然许多人认为在 R 中使用循环是邪恶的,但上述情况并没有那么糟糕,因为我们只是随着循环的进行,一个接一个地添加新的列表项(及其名称)。
您需要在创建列表时为它们命名:
dataframes <- list(df1=df1, df2=df2, df3=df3)
names(dataframes)
#"df1" "df2" "df3"