我有以下数据框,想要按grp列分组以查看每个组中出现的每个列值的数量。
> data.frame(grp = unlist(strsplit("aabbccca", "")), col1=unlist(strsplit("ABAABBAB", "")), col2=unlist(strsplit("BBCCCCDD", "")))
grp col1 col2
1 a A B
2 a B B
3 b A C
4 b A C
5 c B C
6 c B C
7 c A D
8 a B D
Run Code Online (Sandbox Code Playgroud)
期望的结果:
grp col1A col1B col2B col2C col2D
1 a 1 2 2 0 1
2 b 2 0 0 2 0
3 c 1 2 0 2 1
Run Code Online (Sandbox Code Playgroud)
如果我只查看grp和col1列,很容易使用 …
给定表
| id | Name |
| 01 | Bob |
| 02 | Chad |
| 03 | Bob |
| 04 | Tim |
| 05 | Bob |
Run Code Online (Sandbox Code Playgroud)
我想从名称唯一的行中选择名称和 ID(仅出现一次)
这本质上与如何从表中选择列的唯一值?,但请注意,作者不需要 id,因此可以通过以下方式解决该问题GROUP BY name HAVING COUNT(name) = 1
但是,我需要提取整行(可能是数十或数百列),包括 id, where COUNT(name) = 1,但我不能GROUP BY id, name,因为它们的每个组合都是唯一的。
编辑:
我正在使用 Google BigQuery。
预期成绩:
| id | Name |
| 02 | Chad |
| 04 | Tim |
Run Code Online (Sandbox Code Playgroud)