相关疑难解决方法(0)

查找重复行的索引

R中复制的函数执行重复行搜索.如果我们想要删除重复项,我们只需要编写df[!duplicated(df),],重复项将从数据框中删除.

但是如何找到重复数据的索引呢?如果duplicated在某行上返回TRUE,则意味着这是数据帧中第二次出现这样的行,并且可以很容易地获得其索引.如何获得该行首次出现的索引?或者,换句话说,重复行与之相同的索引?

我可以在data.frame上做一个循环,但我认为这个问题有一个更优雅的答案.

r duplicates dataframe

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

分组依据,取计数并过滤掉计数大于1的条目

以下是我的数据,

data

date             number     value
2016-05-05         1          5
2016-05-05         1          6
2016-05-06         2          7
2016-05-06         2          8
2016-05-07         3          9 
2016-05-08         4          10
2016-05-09         5          11
Run Code Online (Sandbox Code Playgroud)

当我使用以下命令时,

data %>% groupby(date, number) %>% summarize(count = n())
Run Code Online (Sandbox Code Playgroud)

我得到以下信息,

date             number        count 
2016-05-05         1             2
2016-05-06         2             2
2016-05-07         3             1
2016-05-08         4             1
2016-05-09         5             1
Run Code Online (Sandbox Code Playgroud)

现在我想过滤掉与计数大于 1 对应的条目。我想删除计数大于 1 的组合条目。我的输出应该如下所示,

data

date             number     value
2016-05-07         3          9 
2016-05-08         4          10
2016-05-09         5          11
Run Code Online (Sandbox Code Playgroud)

其中前四个条目,因为它的计数大于 1 ,已被过滤掉。有人可以帮我做这件事吗?或者给出一些与之相关的想法?

r dplyr

5
推荐指数
1
解决办法
4061
查看次数

忽略第二次或更多次连续0

我试图解决这个非常基本的例子并尝试提取以下数据:

count   SN  data.stamp 
1   00601   2018-07-26 13:38:39       
0   00601   2018-11-05 23:00:09       
0   00601   2018-11-05 23:00:16        
4   00601   2018-11-12 23:00:05        
0   00601   2018-12-12 23:00:05        
5   00601   2018-11-12 23:00:05        
0   00601   2018-12-12 23:00:05
0   00601   2018-11-12 23:00:05        
0   00601   2018-12-12 23:00:05
Run Code Online (Sandbox Code Playgroud)

预期产量:

count   SN  data.stamp 
1   00601   2018-07-26 13:38:39       
0   00601   2018-11-05 23:00:09       
4   00601   2018-11-12 23:00:05        
0   00601   2018-12-12 23:00:05        
5   00601   2018-11-12 23:00:05        
0   00601   2018-12-12 23:00:05
Run Code Online (Sandbox Code Playgroud)

我想只考虑单0值计数.如果有多个0值计数,那么它应该只考虑第一个值并忽略其余的0计数.

基本上,我只寻找第一个零值,然后是非零值.

我尝试过使用,rle但我想从中提取数据data.frame …

r dataframe

3
推荐指数
1
解决办法
51
查看次数

从数据框中删除"重复"行(它们在几列中有所不同)

所以我对这个问题有类似的问题: 删除R中的重复行

在我的情况下,我想保留所有列(不像它建议使用unique前3列的功能).我想从数据框中只考虑2列,如果两个提到的列中的"值"相同,则只保留1行.

数据看起来像:

structure(list(P1 = structure(c(1L, 1L, 3L, 3L, 5L, 5L, 5L, 5L, 
4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 2L), .Label = c("Apple", 
"Grape", "Orange", "Peach", "Tomato"), class = "factor"), P2 = structure(c(4L, 
4L, 3L, 3L, 5L, 5L, 5L, 5L, 6L, 6L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 
1L, 6L, 6L), .Label = c("Banana", "Cucumber", "Lemon", "Orange", 
"Potato", "Tomato"), class = "factor"), P1_location_subacon = structure(c(NA, 
NA, 1L, 1L, 1L, 1L, 1L, …
Run Code Online (Sandbox Code Playgroud)

r

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

从R中的数据框中删除重复的行

我有两列,只想保留非交换行.对于下面的数据,我的输出应该包含一个(1 2)的组合.即我的查询(1 2)与(2 1)相同.有没有一种简单的方法在R中做到这一点.已经尝试过调换.并保留上部的traingular矩阵.但转移数据变得很痛苦.

A B prob
1 2 0.1
1 3 0.2
1 4 0.3
2 1 0.3
2 3 0.1
2 4 0.4
Run Code Online (Sandbox Code Playgroud)

我的最终输出应该是:

A B prob
1 2 0.1
1 3 0.2
1 4 0.3
2 3 0.1
2 4 0.4
Run Code Online (Sandbox Code Playgroud)

transpose r matrix reshape reshape2

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

使用 dplyr 提取唯一的数据行

我正在尝试仅提取每个行b是唯一值时的行a

这是一些示例数据

a <- c(1,1,2,2,3,3,4,4,5,5,5,6,6,7,7,8,8,9,9,9,9,9,10,10,10)
b <- c(1,2,1,1,5,5,6,1,1,1,3,2,2,1,1,2,3,1,2,3,4,4,1,2,2)
df1 <- data.frame(a, b)
Run Code Online (Sandbox Code Playgroud)

并使用dplyr

library(dplyr)

Unique <- df1 %>%
  group_by(a) %>%
  filter(n_distinct(b))
Run Code Online (Sandbox Code Playgroud)

所需的输出应该是数据帧长度 18

r dplyr

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

过滤 R data.frame 中的重复行

我有一个 data.frame 如下所示。

> df2 <- data.frame("StudentId" = c(1,1,1,2,2,3,3), "Subject" = c("Maths", "Maths", "English","Maths", "English", "Science", "Science"), "Score" = c(100,90,80,70, 60,20,10))
> df2
  StudentId Subject Score
1         1   Maths   100
2         1   Maths    90
3         1 English    80
4         2   Maths    70
5         2 English    60
6         3 Science    20
7         3 Science    10
Run Code Online (Sandbox Code Playgroud)

很少有 StudentId 的主题列有重复值(例如:ID 1 有 2 个“数学”条目。我只需要保留第一个重复行。预期的 data.frame 是:

  StudentId Subject Score
1         1   Maths   100
3         1 English    80
4         2   Maths    70
5         2 …
Run Code Online (Sandbox Code Playgroud)

r filter dplyr data.table

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

r ×7

dplyr ×3

dataframe ×2

data.table ×1

duplicates ×1

filter ×1

matrix ×1

reshape ×1

reshape2 ×1

transpose ×1