r - 基于另一个矩阵对一个矩阵进行子集化

标签 r subset

我想根据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/

相关文章:

r - 从数据框中对一列进行子集化,将子集保留为数据框

r - R 中基于元素名称的子集嵌套列表

r - 如何聚类点和绘图

r - 将因子映射到 heatmap.2 中的颜色

r - 在 R 中设置等同于 .subset2?

r - r 中向量值的子集/删除 data.frame

python - 带有列表的子集 Pandas 数据框

r - 使用 ifelse 修改因子变量的水平

r - 使用ggplot2绘制已经存在的线性模型

r - 如何在不知道 Rcpp 类型的情况下处理向量