gpt4 book ai didi

根据另一个数据框重命名多列中的记录

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

假设我有以下数据框:

df <- data.frame(x = c(1,1,1,3,3,3,4,4,4),
y = c(1,3,4,1,3,4,1,3,4),
z = c(6,3,7,8,2,3,0,1,2))

我想根据另一个数据框中包含的映射重命名 x 和 y 列中的值:

df.aux <- data.frame(id = c(0,1,2,3,4),
desc = c('zero', 'one', 'two', 'three', 'four))

获取:

      x     y z
1 one one 6
2 one three 3
3 one four 7
4 three one 8
5 three three 2
6 three four 3
7 four one 0
8 four three 1
9 four four 2

请注意,df.aux 中的映射可能包含比 df 中更多的级别。我可以通过将列名 df$x 更改为 df$id 来进行映射,合并两个 df,然后对 df$y 重复此操作。但它非常笨拙,所以必须有更好的方法。

最佳答案

您可以使用匹配函数来做映射:

df.new <- data.frame(x=df.aux$desc[match(df$x, df.aux$id)], y=df.aux$desc[match(df$y, df.aux$id)], z=df$z)

关于根据另一个数据框重命名多列中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282644/

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