应用于rep()的向量上的join或outer()
我原以为这会很容易,但结果却很难。这是一个简单的问题:我有一个名称向量:应用于rep()的向量上的join或outer(),r,R,我原以为这会很容易,但结果却很难。这是一个简单的问题:我有一个名称向量: [1] David David David Nathan Holly Holly Holly Holly [9] Holly Sue Sue Sue Sue Sue Rene Michelle [17] Michelle Michelle Jennie Jennie Jennie Jennie 我
[1] David David David Nathan Holly Holly Holly Holly
[9] Holly Sue Sue Sue Sue Sue Rene Michelle
[17] Michelle Michelle Jennie Jennie Jennie Jennie
我想创建一个索引向量,这样每个名称都可以得到相同的索引:
[1] 1 1 1 2 3 3 3 3 3 4 4 4 4 4 5 6 6 6 7 7 7 7
我用计算机得到了每个名字的号码
bar <- ddply(df, .(Rater.Name), summarize, rater.n=sum(!is.na(Rater.Name)))
还有各种各样的东西,比如outer(),by(),等等,都不起作用。我最终使用了一个笨拙的for循环,但似乎应该有一种更像“R”的方法来实现它。有人能推荐一种方法吗?您正在寻找的是
因子
:
as.numeric(factor(x))
# [1] 1 1 1 5 2 2 2 2 2 7 7 7 7 7 6 4 4 4 3 3 3 3
默认情况下,这一个按字母顺序排列。如果您不希望(例如:Nathan的2而不是5
),请执行以下操作:
您正在查找系数
:
as.numeric(factor(x))
# [1] 1 1 1 5 2 2 2 2 2 7 7 7 7 7 6 4 4 4 3 3 3 3
默认情况下,这一个按字母顺序排列。如果您不希望(例如:Nathan的2而不是5
),请执行以下操作:
这是一个先将其转换为因子的技巧:
> x <- c('David', 'David', 'Lena', 'David')
> as.factor(x)
[1] David David Lena David
Levels: David Lena
> y <- as.factor(x)
> y
[1] David David Lena David
Levels: David Lena
> as.numeric(y)
[1] 1 1 2 1
>x作为系数(x)
[1] 大卫大卫莉娜大卫
级别:David Lena
>y y
[1] 大卫大卫莉娜大卫
级别:David Lena
>as.数字(y)
[1] 1 1 2 1
这是一个先将其转换为因子的技巧:
> x <- c('David', 'David', 'Lena', 'David')
> as.factor(x)
[1] David David Lena David
Levels: David Lena
> y <- as.factor(x)
> y
[1] David David Lena David
Levels: David Lena
> as.numeric(y)
[1] 1 1 2 1
>x作为系数(x)
[1] 大卫大卫莉娜大卫
级别:David Lena
>y y
[1] 大卫大卫莉娜大卫
级别:David Lena
>as.数字(y)
[1] 1 1 2 1
关于使用因子,我没有什么特别负面的意见,但是您可以通过查看匹配
,了解一个额外的技巧和一个非常有用的函数:
> dat <- scan(what="")
1: David David David Nathan Holly Holly Holly Holly
9: Holly Sue Sue Sue Sue Sue Rene Michelle
17: Michelle Michelle Jennie Jennie Jennie Jennie
23:
Read 22 items
> match(dat, unique(dat))
[1] 1 1 1 2 3 3 3 3 3 4 4 4 4 4 5 6 6 6 7 7 7 7
dat匹配(dat,唯一(dat))
[1] 1 1 1 2 3 3 3 3 3 4 4 4 4 4 5 6 6 6 7 7 7 7
关于使用因子,我没有什么特别负面的意见,但是您可以通过查看匹配
,了解一个额外的技巧和一个非常有用的函数:
> dat <- scan(what="")
1: David David David Nathan Holly Holly Holly Holly
9: Holly Sue Sue Sue Sue Sue Rene Michelle
17: Michelle Michelle Jennie Jennie Jennie Jennie
23:
Read 22 items
> match(dat, unique(dat))
[1] 1 1 1 2 3 3 3 3 3 4 4 4 4 4 5 6 6 6 7 7 7 7
dat匹配(dat,唯一(dat))
[1] 1 1 1 2 3 3 3 3 3 4 4 4 4 4 5 6 6 6 7 7 7 7