R将矢量标签应用于数据库

时间:2014-03-26 10:48:23

标签: database r function

给出一个数据库

> dat
     x   y      
[1,] "A" "alpha"
[2,] "B" "beta" 
[3,] "C" "gamma"

定义d[,2]中数据的标签(在d[,1]中指定),我想将标签应用于矢量

z
[1] "A" "A" "A" "B" "B" "C" "C" "C"

到达数据库

     z          
[1,] "A" "alpha"
[2,] "A" "alpha"
[3,] "A" "alpha"
[4,] "B" "beta" 
[5,] "B" "beta" 
[6,] "C" "gamma"
[7,] "C" "gamma"
[8,] "C" "gamma"

不幸的是,我的数据库相当大:有没有一种快速的方法可以做到这一点,内置函数在R?

编辑问题的修改版本。

给定数据库("规则"或"标签")

> dat
     x   y      
[1,] 1 "alpha"
[2,] 2 "beta" 
[3,] 3 "gamma"

我想将新{3}列中的y标签应用于数据库

> q
     z    
[1,] 1 0.1
[2,] 2 0.2
[3,] 3 0.3
[4,] 3 0.4
[5,] 2 0.5
[6,] 1 0.6
[7,] 1 0.7
[8,] 2 0.8

根据q[,1]中的值,即z

1 个答案:

答案 0 :(得分:2)

这应该可以满足您的需求:

dat <- as.matrix(data.frame(x=LETTERS[1:3],y=c("alpha","beta","gamma")))
z <- c("A","A","A","B","B","C","C","C")

rownames(dat) <- dat$x
dat[z,]

  x   y      
A "A" "alpha"
A "A" "alpha"
A "A" "alpha"
B "B" "beta" 
B "B" "beta" 
C "C" "gamma"
C "C" "gamma"
C "C" "gamma"