【发布时间】:2015-05-04 05:03:03
【问题描述】:
我希望有选择地将来自一个数据框 (A) 的数据集成到另一个 (B) 中。条件如下:数据框共享两列(miRNA & Gene)。数据框 A 还包含具有该对值的列。
我想在数据框 B 中创建一个新列,该列取自 A 中的 Value 列,如果该对(A 中的一行中的相同 miRNA 和基因)在 B 中匹配,则包含一个值。如果一对不匹配在 B 中,使用分数创建一个新行。
伪代码
#Initialize column in B that will house A value if first two columns match
B$A_Values <- 0
If A[,1:2] == B[,1:2]:
Change initialized B$A_Value to A[VALUE] of row from A[,1:2]
If A[,1,2] is not in B[,1:2]:
Add row in B[,1:2]
Change initialized B$A_Value to A[Value] of row from A[,1:2]
数据帧的长度不相等,并且 B 中的某些项目在 A 中找不到,尽管我假设我的初始化会将它们默认值为 0。任何帮助将不胜感激。
干杯
【问题讨论】:
-
merge(A, B, by=c("miRNA", "Gene"), all.x=TRUE)? -
谢谢Khashaa,这是现场
-
已经在这里给出了深入的解释:stackoverflow.com/questions/1299871/…
-
谢谢阿加兹!!我在合并的研究中没有发现这个问题。我的研究重点是根据多列的内容选择性地合并项目,我什至没有考虑类似 SQL 的语句。这将是未来数据表集成的重要资源。干杯,科迪