gpt4 book ai didi

r - 将向量的唯一值映射到连续整数的有效方法是什么?

转载 作者:行者123 更新时间:2023-12-04 09:32:01 25 4
gpt4 key购买 nike

我在 R 中有一个数据帧,其中包含一个非序列数向量( data$SiteID ),我想将其映射到一个序列数向量( data$site )到 data$SiteID 的唯一值.在每个站点内,我想映射 data$TrtID0哪里data$TrtID == 'control'或到下一个连续整数,对于另一个唯一的 data$TrtID的:

data <- data.frame(SiteID = c(1,1,1,9,'108','108','15', '15'), 
TrtID = c('N', 'control', 'N', 'control', 'P', 'control', 'N', 'P'))
  • data$site应该是 c(1,1,1,2,3,3,4,4) .
  • data$trt应该是 c(1,0,1,0,1,0,0,1) .
  • 最佳答案

    只需将它们视为因素:

    as.numeric(factor(data$SiteID, levels = unique(data$SiteID)))
    [1] 1 1 1 2 3 3 4 4

    对于 Trt,由于您想要一个基于 0 的值,请减去 1。
    as.numeric(factor(data$TrtID, levels = sort(unique(data$TrtID))))-1
    [1] 1 0 1 0 2 0 1 2

    请注意,级别参数是不同的 - Trt 首先排序,这很方便,因为控制在 N 或 P 之前按字母顺序排列。如果您想要非标准排序,您可以按照您想要的顺序明确指定级别。

    关于r - 将向量的唯一值映射到连续整数的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755473/

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