【发布时间】:2012-02-05 02:18:50
【问题描述】:
我想给向量的元素编号,将“1”分配给向量中的最小元素。我知道如何做到这一点,但我的解决方案(包含在下面的代码)似乎过于复杂。有更简单的解决方案吗?
在下面的示例中,向量“数据”中有 5 个唯一数字。数字 3 是最小的,应分配数字“1”;数字 100 是最大的,应该分配数字“5”。
向量“数据”的所需解决方案是:c(2,3,4,4,3,1,5)。
data <- c(5,8,12,12,8,3,100)
unique.numbers <- sort(unique(data))
numbering <- seq(1:length(unique(data)))
template <- cbind(numbering,unique.numbers)
output <- rep(NA, length(data))
for(i in 1:length(data)) {
for(j in 1:dim(template)[1]) {
if(data[i]==template[j,2]) output[i]=j
}
}
output
感谢您的任何建议。我正在努力提高我的编程效率。
马克·米勒
【问题讨论】:
标签: r