我在 R 中有一个数据框,其中包含非连续数字的向量(data$SiteID
)我想映射到一个连续数字的向量(data$site
)的独特价值data$SiteID
。在每个站点内,我想绘制地图data$TrtID
to 0
where data$TrtID == 'control'
或到下一个连续整数,对于其他唯一的data$TrtID
's:
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 开始的值,因此减一。
as.numeric(factor(data$TrtID, levels = sort(unique(data$TrtID))))-1
[1] 1 0 1 0 2 0 1 2
请注意,级别参数不同 - Trt 首先排序,这很方便,因为控制按字母顺序排列在 N 或 P 之前。如果您想要非标准排序,您可以按照您想要的顺序显式指定级别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)