我想根据G
字符串选择R
以获得具有相同维度的分离输出。这是我的输入:
R <- 'pr_id sample1 sample2 sample3
AX-1 100 120 130
AX-2 150 180 160
AX-3 160 120 196'
R <- read.table(text=R, header=T)
G <- 'pr_id sample1 sample2 sample3
AX-1 AB AA AA
AX-2 BB AB NA
AX-3 BB AB AA'
G <- read.table(text=G, header=T)
这是我的预期输出:
AA <- 'pr_id sample1 sample2 sample3
AX-1 NA 120 130
AX-2 NA NA NA
AX-3 NA NA 196'
AA <- read.table(text=AA, header=T)
AB <- 'pr_id sample1 sample2 sample3
AX-1 100 NA NA
AX-2 NA 180 NA
AX-3 NA 120 NA'
AB <- read.table(text=AB, header=T)
BB <- 'pr_id sample1 sample2 sample3
AX-1 NA NA NA
AX-2 150 NA NA
AX-3 160 NA NA'
BB <- read.table(text=BB, header=T)
有什么想法来执行它吗?
最佳答案
另一种方式:
lev<-setdiff(as.character(unique(unlist(G[-1]))),NA)
lapply(lev, function(x) {res<-G[-1]==x;res[!res]<-NA;cbind(R[1],res*R[-1])})
关于r - 基于另一个矩阵对一个矩阵进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034632/