我有这样的数据,其中一些"名称"出现超过3次:
df <- data.frame(name = c("a", "a", "a", "b", "b", "c", "c", "c", "c"), x = 1:9)
name x
1 a 1
2 a 2
3 a 3
4 b 4
5 b 5
6 c 6
7 c 7
8 c 8
9 c 9
Run Code Online (Sandbox Code Playgroud)
我希望根据"name"变量的每个级别内的行数(观察值)对数据进行子集化(过滤).如果某个级别的"名称"出现超过3次,我想删除属于该级别的所有行.
我写了这段代码,但无法让它工作.
name x
1 a 1
2 a 2
3 a 3
4 b 4
5 b 5
Run Code Online (Sandbox Code Playgroud) 我有一个df,我想删除df中行数少于X的人.例如,在这个玩具示例中,我想留下那些> = 5行的人.
df
names fruit
4 john kiwi
7 john apple
9 john banana
13 john orange
14 john apple
2 mary orange
5 mary apple
8 mary orange
10 mary apple
12 mary apple
1 tom apple
3 tom banana
6 tom apple
11 tom kiwi
Run Code Online (Sandbox Code Playgroud)
示例输出
df
names fruit
4 john kiwi
7 john apple
9 john banana
13 john orange
14 john apple
2 mary orange
5 mary apple
8 mary orange
10 mary apple
12 …Run Code Online (Sandbox Code Playgroud) 我试图通过因子变量对data.frame进行分组,然后返回data.frame的行,这些行与每个组中仅发生一次的观察值相对应。例如,考虑以下数据:
x = matrix(c(1,1,2,2,2,3,4,4,5,4), nrow = 5, ncol = 2, byrow = F)
x = data.frame(x)
x
# X1 X2
# 1 1 3
# 2 1 4
# 3 2 4
# 4 2 5
# 5 2 4
Run Code Online (Sandbox Code Playgroud)
我想按第1列中的值对数据进行分组,然后返回一组中第2列中的值仅出现一次的行。在这里,该函数将返回第一,第二和第四行。
所需的输出
# X1 X2
# 1 1 3
# 2 1 4
# 4 2 5
Run Code Online (Sandbox Code Playgroud)
我希望将其应用于具有> 1mm行的数据集。