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我编辑了我的问题,以便更好地逼近我原来的问题。