我有一个包含以下数据的载体:
data<-c('ab','ab','ab','cd','cd','cd','ef','ef')
如何使用R转换该数据,以便使用以下模式进行转换:
ab=1
cd=2
ef=3
这样矢量将转换为:
data=[1,1,1,2,2,2,3,3]
答案 0 :(得分:3)
另一个选项是match
match(data, unique(data))
#[1] 1 1 1 2 2 2 3 3
或者代替unique(data)
,您可以指定要匹配的元素的向量。
match(data, c('ab', 'cd', 'ef'))
答案 1 :(得分:2)
这基本上是一个&#34;因素&#34;在R.你可以做到
as.numeric(factor(data, levels=c("ab","cd","ef")))
您还可以使用命名查找向量
vv<-c(ab=1, cd=2, ef=3)
vv[data]
# or unname(vv[data]) if the names really bother you