gpt4 book ai didi

r - 使具有重复值的列在数据框中唯一

转载 作者:行者123 更新时间:2023-12-04 07:36:49 26 4
gpt4 key购买 nike

我有一个数据框,其中一列具有重复的值,例如

employee <- data.frame(name = c('John', 'Joe', 'Mat', 'John', 'Joe'), 
salary = c(1500, 2000, 1700, 1210, 2100),
startdate = c('2012-05-10', '2015-02-17',
'2014-09-11', '2011-11-23', '2010-10-27'))

我可以通过以下方式获得第 1 列中的唯一元素
unique(employee$name)

但是,我想制作 name 中的每个项目列唯一。如果第二次出现某些内容,则将 _1 附加到它。如果它再次出现,将 _2 附加到它。因此,在员工数据框中,我想将第二列更改为
John
Joe
Mat
John_1
Joe_1

除了循环之外还有其他方法吗?

最佳答案

我们可以使用 make.namesunique=TRUE .默认情况下,一个 .将附加在后缀数字之前,可以用 _ 代替。使用 sub

 employee$name <- sub('[.]', '_', make.names(employee$name, unique=TRUE))

或者@DavidArenburg 建议的更好的选择。如果 name列是 factor类,将输入列转换为 character应用 as.character 之前的类 ( make.unique )
 make.unique(as.character(employee$name), sep = "_")
#[1] "John" "Joe" "Mat" "John_1" "Joe_1"

关于r - 使具有重复值的列在数据框中唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29353747/

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