Database R将向量的标签应用于数据库

Database R将向量的标签应用于数据库,database,r,function,Database,R,Function,给定一个数据库 > dat x y [1,] "A" "alpha" [2,] "B" "beta" [3,] "C" "gamma" 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" 它定义了d[,2]中

给定一个数据库

> dat
     x   y      
[1,] "A" "alpha"
[2,] "B" "beta" 
[3,] "C" "gamma"
     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"
它定义了
d[,2]
中数据的标签(在
d[,1]
中指定),我想将标签应用于向量

z
[1] "A" "A" "A" "B" "B" "C" "C" "C"
到达数据库

> dat
     x   y      
[1,] "A" "alpha"
[2,] "B" "beta" 
[3,] "C" "gamma"
     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中使用内置函数

编辑问题的修改版本

给定数据库(包含“规则”或“标签”)

我想将
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

这应该满足您的要求:

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"

dat我编辑了我的问题,以便更好地逼近我原来的问题。