首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >互动,组数

互动,组数
EN

Stack Overflow用户
提问于 2013-03-27 23:30:33
回答 2查看 68关注 0票数 0

从一个向量a中,我正在寻找一个函数(快速计算),它返回一个向量,它的数字范围在1和向量a中的级数之间,并指示哪些值是相等的。

我知道如何使用for循环来做到这一点,但它运行起来有点慢。

代码语言:javascript
复制
a=vector(11,14,11,22,14,22)

levels(as.factor(a))==3

解决方案

代码语言:javascript
复制
 b=vector(1,2,1,3,2,3)

这意味着在位置1和3(其中是b中的数字1),a中的值是相等的。在位置2和5(其中是b中的数字2),a中的值是相等的。等等。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-27 23:34:03

您可以在因子上使用as.numeric()来获得以下结果:

代码语言:javascript
复制
a <- c(11,14,11,22,14,22)
as.numeric(factor(a))
# [1] 1 2 1 3 2 3
票数 2
EN

Stack Overflow用户

发布于 2013-03-27 23:59:10

下面是一个快速实现的函数:

代码语言:javascript
复制
numberfun <- function(x){y <- unique(x)
                         match(x,y)}

a <- c(11,14,11,22,14,22)
numberfun(a)
#[1] 1 2 1 3 2 3

a <- c(99,99,22,22,44,22,99)
numberfun(a)
#[1] 1 1 2 2 3 2 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15662781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档