gpt4 book ai didi

r - 根据存储在 data.frame 中的单独字符向量,有条件地重命名列表中的列

转载 作者:行者123 更新时间:2023-12-04 00:12:24 25 4
gpt4 key购买 nike

我有一个名为 tibbleslst 列表:

> lst
[[1]]
# A tibble: 2 x 4
temp1 temp2 temp3 id
<chr> <dbl> <dbl> <dbl>
1 Metric 1 150 1234 201
2 Metric 2 190 3456 201

[[2]]
# A tibble: 2 x 4
temp1 temp2 temp3 id
<chr> <dbl> <dbl> <dbl>
1 Metric 1 190 1231 202
2 Metric 2 120 3356 202
我还有一个名为 tibble 的单独 df ,其中有一列包含字符向量以重命名 lst 中的列:
# A tibble: 2 x 2
colnames id
<chr> <dbl>
1 c(' ','Ranking 1 for School A', 'Ranking 2 for School A') 201
2 c(' ', 'Ranking 1 for School B', 'Ranking 2 for School B') 202
我正在寻找一种方法,理想情况下使用 map 中的某种形式的 purrr 删除 id 列并根据 tibble 中的值重命名 lst 中每个 df 的列。
非常感谢任何建议。先感谢您。
期望的输出:
[[1]]
# A tibble: 2 x 3
` ` `Ranking 1 for School A` `Ranking 2 for School A`
<chr> <dbl> <dbl>
1 Metric 1 150 1234
2 Metric 2 190 3456

[[2]]
# A tibble: 2 x 3
` ` `Ranking 1 for School B` `Ranking 2 for School B`
<chr> <dbl> <dbl>
1 Metric 1 190 1231
2 Metric 2 120 3356
数据:
lst <- list(structure(list(temp1 = c("Metric 1", "Metric 2"), temp2 = c(150, 
190), temp3 = c(1234, 3456), id = c(201, 201)), row.names = c(NA,
-2L), class = c("tbl_df", "tbl", "data.frame")), structure(list(
temp1 = c("Metric 1", "Metric 2"), temp2 = c(190, 120), temp3 = c(1231,
3356), id = c(202, 202)), row.names = c(NA, -2L), class = c("tbl_df",
"tbl", "data.frame")))

df <- structure(list(colnames = c("c(' ','Ranking 1 for School A', 'Ranking 2 for School A')",
"c(' ', 'Ranking 1 for School B', 'Ranking 2 for School B')"),
id = c(201, 202)), row.names = c(NA, -2L), class = c("tbl_df",
"tbl", "data.frame"))

最佳答案

从表面上看,这就是我要做的,

library(tidyverse)

1:length(lst) %>% map(
.f = function(x) {

# Store list
tmp <- lst[[x]] %>%
select(-"id")


# Rename Colums
colnames(tmp) <- paste((df[x,"colnames"])) %>%
parse(text = .) %>%
eval()

# Return the modified data
tmp

}
)

注意:
显然,这假设 lstcolnames 是顺序存储的,这样 index 1 中的 list 使用 index 1 中的 df[,"colnames"]

关于r - 根据存储在 data.frame 中的单独字符向量,有条件地重命名列表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68216482/

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