【发布时间】:2017-11-10 12:16:00
【问题描述】:
我有一个与this 帖子有些相似的问题,但由于情况略有变化,它对我不起作用。
我有 2 个数据框,如下所示:
> effect
V1 V2 V3
1 G1 activates G2
2 G3 stops G4
3 G5 activates G6
4 G6 stops G7
> expression
V1 V2
1 G1 1
2 G2 0
3 G3 1
4 G4 0
5 G5 1
6 G6 1
7 G7 1
我只想在满足以下条件的 effect 数据框中保留那些行:
如果
effect$V2 == activates那么expression$V2应该是 1 其中effect$V3和expression$V1是一样的如果
effect$V2 == stops那么expression$V2应该是0 其中effect$V3和expression$V1是一样的
根据这个标准,我会得到这个结果:
> results
V1 V2 V3
1 G3 stops G4
2 G5 activates G6
因为这与给定条件一致,因此对于第一行,G4 的 V2=stops 和 expression$V2 是 0。
同样,对于 row2 V2=activates和 expression$V2 对于 G6 是 1
数据帧的结构如下所示。任何帮助将不胜感激。
df1:
structure(list(V1 = structure(1:4, .Label = c("G1", "G3", "G5",
"G6"), class = "factor"), V2 = structure(c(1L, 2L, 1L, 2L), .Label = c("activates",
"stops"), class = "factor"), V3 = structure(1:4, .Label = c("G2",
"G4", "G6", "G7"), class = "factor")), .Names = c("V1", "V2",
"V3"), class = "data.frame", row.names = c(NA, -4L))
df2:
structure(list(V1 = structure(1:7, .Label = c("G1", "G2", "G3",
"G4", "G5", "G6", "G7"), class = "factor"), V2 = c(1L, 0L, 1L,
0L, 1L, 1L, 1L)), .Names = c("V1", "V2"), class = "data.frame", row.names = c(NA,
-7L))
【问题讨论】:
-
我已经找到了自己问题的答案。如果管理员想要,他们可以删除这个问题。很抱歉给您带来不便。
标签: r if-statement merge subset