gpt4 book ai didi

r - 如何为列中的重复名称设置唯一 ID

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

我的数据包含不同类型的患者样本,这些样本随时间推移而变化。该数据超过 10197 个观测值。我的数据的一个(小)示例是:

PatientName <- c("Jones", "Jones", "Jones", "Smith", "Smith", "Nixon", "Nixon", "Nixon")
SampleType <- c("Venous", "Arterial", "Capillary", "Venous", "Venous", "Venous", "Venous", "Capillary")
DayTested <- c("Monday", "Tuesday", "Wednesday", "Monday", "Monday", "Monday", "Monday", "Tuesday")

df <- data.frame(PatientName, SampleType, DayTested)

我现在希望在同一天对同一患者有重复样本类型时添加一个唯一 ID。

我的预期输出是:

df$ID <- c(1,1,1,1,2,1,2,1)

这会选取重复出现的 "Smith""Nixon" 上重复 "Venous" 样本由 ID = 2 指定的“星期一”。所有其他 ID 将等于 1,因为它们是单独的样本,在不同的日子采集。

请问这可以在 R 中实现吗?

最佳答案

我们可以使用ave

df$ID <- with(df, as.integer(ave(as.character(SampleType),
PatientName, DayTested, FUN = seq_along)))
df$ID
#[1] 1 1 1 1 2 1 2 1

或如@lmo 建议的那样

df$ID <- with(df, ave(as.integer(SampleType), PatientName, DayTested, FUN = seq_along))

关于r - 如何为列中的重复名称设置唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46463286/

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