gpt4 book ai didi

R:从数据框列表中的数据框名称设置列名

转载 作者:行者123 更新时间:2023-12-02 15:55:02 25 4
gpt4 key购买 nike

我有大量数据框,如下所示:

> head(lst)
$Set1
ID Value
1 A 1
2 B 1
3 C 1

$Set2
ID Value
1 A 1
2 D 1
3 E 1

$Set3
ID Value
1 B 1
2 C 1

我想将每个数据框中的“值”列的名称更改为与数据框的名称相似,以便数据框列表如下所示:

> head(lst)
$Set1
ID Set1
1 A 1
2 B 1
3 C 1

$Set2
ID Set2
1 A 1
2 D 1
3 E 1

$Set3
ID Set3
1 B 1
2 C 1

谁能想出一个函数来获取列表中每个数据框的名称并相应地命名该列?我的原始列表有超过 400 个数据帧,所以我希望以某种方式自动执行此操作。对不起,如果这是一个天真的问题,但我不知何故被困住了......

非常感谢!

这里是一个 dfs 列表的例子:

lst <- list(
data.frame(ID = c("A", "B", "C"), Value = c(1, 1, 1)),
data.frame(ID = c("A", "D", "E"), Value = c(1, 1, 1)),
data.frame(ID = c("B", "C"), Value = c(1, 1)),
data.frame(ID = c("B", "C"), Value = c(1, 1)),
data.frame(ID = c("B", "C"), Value = c(1, 1)),
data.frame(ID = c("B", "C"), Value = c(1, 1)))
lst_names <- c("Set1", "Set2", "Set3", "Set4", "Set5","Set6")
names(lst) <- lst_names

最佳答案

在 tidyverse 中我们可以使用 purrr::imapdplyr::rename:

library(purrr)
library(dplyr)

lst %>%
imap(~ rename(.x, "{.y}" := Value))
#> $Set1
#> ID Set1
#> 1 A 1
#> 2 B 1
#> 3 C 1
#>
#> $Set2
#> ID Set2
#> 1 A 1
#> 2 D 1
#> 3 E 1
#>
#> $Set3
#> ID Set3
#> 1 B 1
#> 2 C 1
#>
#> $Set4
#> ID Set4
#> 1 B 1
#> 2 C 1
#>
#> $Set5
#> ID Set5
#> 1 B 1
#> 2 C 1
#>
#> $Set6
#> ID Set6
#> 1 B 1
#> 2 C 1

reprex package 创建于 2022-03-28 (v2.0.1)

关于R:从数据框列表中的数据框名称设置列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71647634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com