【发布时间】:2016-07-28 00:58:41
【问题描述】:
我想根据 r 中的条件对data.frame 进行子集化。我有以下data.frame:
df
id | message | cluster
-------+-----------------+----------------
1 | Test A | 1
2 | Test B | 1
3 | Test C | 3
4 | Test D | 1
5 | Test E | 2
6 | Test F | 2
7 | Test G | 3
8 | Test H | 3
9 | Test I | 1
10 | Test K | 2
11 | Test L | 4
12 | Test M | 4
我想构造一个新的data.frame,它有 4 行(不同簇的数量)。我选择第一个message 作为集群的代表。所以我想得到以下data.frame:
df2
id | message | cluster
-------+-----------------+----------------
1 | Test A | 1
3 | Test C | 3
5 | Test E | 2
11 | Test L | 4
【问题讨论】:
-
df2 <- do.call(rbind, by(df, df$cluster, function(x) head(x, 1))) -
请以可重复的格式提供您的示例数据,例如
dput -
或
df2 <- df[!duplicated(df$cluster), ]都可以。