gpt4 book ai didi

r - 将新级别添加到一个因子并替换现有的因子

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

我在处理数据帧的级别名称时遇到了很大的麻烦。

我有一个大数据框,其中一个列是很多级别的因素。

问题在于某些数据是重复的,而我分析中的下一步不接受重复的数据。因此,我需要更改重复级别的名称,以便继续进行下一步。

让我给你举个例子:

假设我们有一个带有一个列的简单数据框:

> df
col_foo
1 bar1
2 bar2
3 bar3
4 bar2
5 bar4
6 bar5
7 bar3

如果我们看一下该列,就会发现它是一个具有5个不同级别的因子。
>df$col_foo
[1] bar1 bar2 bar3 bar2 bar4 bar5 bar3
Levels: bar1 bar2 bar3 bar4 bar5

好的,问题来了。看到 bar2bar3级别是 重复的。我想知道的是如何添加一个级别名称(例如 bar2_X),并仅将重复的名称替换为该名称。因此,数据框应变为:
> df
col_foo
1 bar1
2 bar2
3 bar3
4 bar2_X
5 bar4
6 bar5
7 bar3_X

那可能吗 ?我不能更改列的类,它仍然应该是一个因素,因此需要更改它的解决方案将无法解决我的问题,除非可以再次强制进行因数分解。

谢谢

最佳答案

如果您希望所有条目都是唯一的,那么仅使用字符变量不会给您带来什么好处。

可能最简单的方法是强制转换为字符向量,使用duplicated函数查找重复项并将某些内容粘贴到重复项的末尾,然后,如果要使用factor将其重新强制化为一个因子。可能是这样的:

df$col_foo <- factor( ifelse( duplicated(df$col_fo), 
paste(df$col_foo, '_x', sep=''), as.character(df$col_foo)))

关于r - 将新级别添加到一个因子并替换现有的因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919527/

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