【发布时间】:2012-06-06 07:15:23
【问题描述】:
我必须根据特定条件从数据框中选择一堆数据。数据框大致如下:
F1 F2 D1 D2
1 A1 B1 1 0
2 A1 B1 1 1
3 A1 B1 0 0
4 A1 B2 1 0
5 A1 B2 0 0
6 A2 B2 1 0
7 A2 B2 1 1
Fx 是因子,Dx 是数据值。我要做的是:
- 查找数据值与特定模式匹配的行。
- 对于与该模式匹配的每一行,查找具有相同因子的所有行
- 对于每个唯一的因子组合,对具有该组合的所有行应用一些操作
例如,
factors <- unique(data[D1==1 & D2 == 1, c("F1","F2")])
会给我第 1 步和第 2 步的大部分内容。
还有
data[data$F1 %in% factors$F1 & data$F2 %in% factors%F2,]
我越来越接近解决方案,但使用上面的示例数据,这将选择所有行。但不应选择第 4 行和第 5 行,因为它们不是完全匹配的。如何添加某种要求 %in% 匹配发生在同一行的条件?
我觉得这应该是一个常见的操作,因此 R 可能有一个聪明的方法来做到这一点。
有什么想法吗???谢谢。
【问题讨论】:
-
了解
plyr包 - 这将使您的大部分分析变得非常容易。
标签: r dataframe data.table