相关疑难解决方法(0)

基于每组行数的子集数据帧

我有这样的数据,其中一些"名称"出现超过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)

r subset dataframe r-faq

23
推荐指数
2
解决办法
2万
查看次数

删除出现x次R的ID

我有一个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)

r rows

5
推荐指数
2
解决办法
2217
查看次数

返回仅在组中出现一次的观察结果

我试图通过因子变量对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行的数据集。

grouping r dataframe

2
推荐指数
1
解决办法
1792
查看次数

标签 统计

r ×3

dataframe ×2

grouping ×1

r-faq ×1

rows ×1

subset ×1