0

我有 10data.frame秒,有 2 列名称sp. s是为了sequencep是为了p-values。我想找到与所有data.frames 相交的序列,所以我这样做了:

# 10 data.frames are a, b, c, ..., j
masterseq_list <- Reduce(intersect, list(a$s, b$s, c$s, d$s, e$s, f$s, g$s,h$s, i$s,j$s))

我想通过这个新的简化序列来masterseq_list合并每个数据帧a:j,所以我留下每个数据帧作为新列而不是data.frame保持完整。我知道我可以以某种方式使用此代码,但如果我想要的列当前是一个列表,我真的不确定该怎么做。masterseq_listsp-values

total <- merge(data frameA,data frameB,by="s")

这些文件真的很大,所以我想找到一种方法来自动化这个,我怎样才能更快更有效地循环呢?非常感谢!

4

1 回答 1

2

我首先将所有data.frameslist放在首位:

my_l <- list(a,b,c)
# now get intersection
isect <- Reduce(intersect, lapply(my_l, "[[", 1))
> isect
# [1] "gtcg"  "gtcgg" "gggaa" "cttg" 

# subset the original data.frames for just this intersecting rows
lapply(my_l, function(x) subset(x, s %in% isect))
于 2013-03-30T21:54:12.173 回答