在 R 中交叉多个数据集
Intersecting multiple datasets in R
如何在多个样本之间进行交叉?
我根据基因名称、cc 变化、坐标构建了 29 个连接列表。每个列表有 400-800 长。我需要构建一个 table 来显示所有 812 种组合在两个列表之间共享的变体数量。我可以在 R 中执行此操作吗?
例如:如果我有4个列表。
A<-c("TSC22112517","SLC141T43309911","RAD51D33446609","WRN31024638")
B<-c("TSC22112517","SLC14A143309911","RHBDF274474996","WRN31024638")
C<-c("TSC22112517","SLC14A143309911","RAD51D33446609","MEN164575556")
D<-c("FANCM45665468","SLC14A143309911","RAD51D33446609","MEN164575556")
我只需要找出有多少变体相互分片。
AB<-length(intersect(A,B))
给我 A 和 B 共享的变体数量,即 3。
然后我可以获得如下所示的 table 显示共享变体的数量:
A B C D
A 4 3 2 2
B 3 4 3 2
C 2 3 4 2
D 2 2 2 4
如何处理大量列表?
我有 29 个列表,每个列表有 600 个变体。
你可以尝试这样的事情:我在列表中做很多事情...
#x is your data in list() format
shared<-list()
for (i in 1:29){
shared[[i]]<-list()
for (j in 1:29){
if (i != j){
shared[[i]][[j]]<-x[[i]][x[[i]][,2]==x[[j]][,2]]
}
}
}
很高兴弄明白了
x<- list()
shared<-matrix(1:841,ncol=29)
temp<-NULL
for (i in 1:29){
for (j in 1:29){
temp[j] <- length(intersect(x[[i]][[1]],x[[j]][[1]]))
}
shared[,i] <- matrix(temp)
}
shared
如何在多个样本之间进行交叉?
我根据基因名称、cc 变化、坐标构建了 29 个连接列表。每个列表有 400-800 长。我需要构建一个 table 来显示所有 812 种组合在两个列表之间共享的变体数量。我可以在 R 中执行此操作吗?
例如:如果我有4个列表。
A<-c("TSC22112517","SLC141T43309911","RAD51D33446609","WRN31024638")
B<-c("TSC22112517","SLC14A143309911","RHBDF274474996","WRN31024638")
C<-c("TSC22112517","SLC14A143309911","RAD51D33446609","MEN164575556")
D<-c("FANCM45665468","SLC14A143309911","RAD51D33446609","MEN164575556")
我只需要找出有多少变体相互分片。
AB<-length(intersect(A,B))
给我 A 和 B 共享的变体数量,即 3。 然后我可以获得如下所示的 table 显示共享变体的数量:
A B C D
A 4 3 2 2
B 3 4 3 2
C 2 3 4 2
D 2 2 2 4
如何处理大量列表? 我有 29 个列表,每个列表有 600 个变体。
你可以尝试这样的事情:我在列表中做很多事情...
#x is your data in list() format
shared<-list()
for (i in 1:29){
shared[[i]]<-list()
for (j in 1:29){
if (i != j){
shared[[i]][[j]]<-x[[i]][x[[i]][,2]==x[[j]][,2]]
}
}
}
很高兴弄明白了
x<- list()
shared<-matrix(1:841,ncol=29)
temp<-NULL
for (i in 1:29){
for (j in 1:29){
temp[j] <- length(intersect(x[[i]][[1]],x[[j]][[1]]))
}
shared[,i] <- matrix(temp)
}
shared