gpt4 book ai didi

替换列名

转载 作者:行者123 更新时间:2023-12-02 05:17:53 26 4
gpt4 key购买 nike

我从一个较大的表创建了一个较小的表。在这个较小的表格中选择的列不是固定的,即用户将来可以选择不同的集合。

两个表中的列名称均基于 sap 定义

我有另一个文件,它将所有列名称映射为更简单的格式。

如果列表已修复,我可以使用重命名选项。由于列列表不固定,因此重命名选项很繁琐。

我如何确保用户获得正确的名称,无论他的选择如何?

更大的表A=

a,b,c,d,e,f,g
1,2,3,4,5,6,7
8,9,10,11,12,13,14

较小的表 B =

a,b,c
1,2,3
8,9,10

具有名称映射的表 C=

Col1,Col2
a,name
b,age
c,height
d,weight
e,salary
f,firm
g,address

我希望我的程序引用映射表 C 并重命名 B 中的列名称。本例中的预期输出 -

name,age,height
1,2,3
8,9,10

如果将来用户选择 b、f 和 g 列。代码应该能够使用映射文件将其替换为正确的名称。我希望它清楚

最佳答案

我们可以使用match(假设映射数据集('df3')的列是character

names(df2) <- df3$Col2[match(names(df2), df3$Col1)]
df2
# name age height
#1 1 2 3
#2 8 9 10

数据

df1 <- structure(list(a = c(1L, 8L), b = c(2L, 9L), c = c(3L, 10L), 
d = c(4L, 11L), e = c(5L, 12L), f = c(6L, 13L), g = c(7L,
14L)), .Names = c("a", "b", "c", "d", "e", "f", "g"),
class = "data.frame", row.names = c(NA,
-2L))

df2 <- structure(list(name = c(1L, 8L), age = c(2L, 9L),
height = c(3L,
10L)), .Names = c("name", "age", "height"), class = "data.frame",
row.names = c(NA, -2L))

df3 <- structure(list(Col1 = c("a", "b", "c", "d", "e", "f", "g"),
Col2 = c("name",
"age", "height", "weight", "salary", "firm", "address")),
.Names = c("Col1", "Col2"), class = "data.frame", row.names = c(NA,
-7L))

关于替换列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43993623/

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