【发布时间】:2020-08-01 12:11:16
【问题描述】:
我有一个字符向量列表:
set.seed(1)
sets.list <- list(s1 = paste0("id",sample(1:10,3,replace=F)),
s2 = paste0("id",sample(1:10,4,replace=F)),
s3 = paste0("id",sample(1:10,4,replace=F)))
我想创建一个integermatrix,其中列是sets.list (sets.ids <- unique(unlist(sets.list))) 中的唯一值,行是sets.list 元素,值是值是否是 sets.list 元素的成员 (1) 或不是 (0)。
这就是我当前生成此matrix 的方式:
sets.mat <- do.call(rbind,lapply(sets.list, function(s){
set.row <- rep(0,length(sets.ids))
set.row[which(sets.ids %in% s)] <- 1
return(set.row)
}))
colnames(sets.mat) <- sets.ids
我的问题是在代码方面是否有更简洁的东西(也许使用tidyverse)
【问题讨论】:
标签: r list matrix dplyr tidyverse