Удалите первое вхождение значения столбца из dataframe в r [duplicate]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

2
задан dzadi 19 August 2015 в 00:24
поделиться

4 ответа

Довольно просто с duplicated

df[duplicated(df$group),]
   group score
2      1    10
3      1    22
5      2     6
7      3    20
9      4     2
10     4    60
12     5     5
6
ответ дан A. Webb 18 August 2018 в 17:27
поделиться
dplyr::filter(df, group == lag(group))
   group score
1     1    10
2     1    22
3     2     6
4     3    20
5     4     2
6     4    60
7     5     5

Дополнительную информацию см. в lead и lag пакета dplyr:

https://dplyr.tidyverse.org/reference/lead-lag.html

0
ответ дан akira 18 August 2018 в 17:27
поделиться

Другой параметр base R будет проверять смежные элементы

df[c(FALSE,df$group[-1]==df$group[-nrow(df)]),]
#   group score
#2      1    10
#3      1    22
#5      2     6
#7      3    20
#9      4     2
#10     4    60
#12     5     5

Здесь я удалил первое наблюдение в «группе» (df$group[-1]) и сравнил (==) с вектором в котором последнее наблюдение удаляется (df$group[-nrow(df)])). Поскольку length сравнения меньше, чем nrow набора данных, мы нажимаем FALSE вверху и используем его как логический индекс для подмножества набора данных.

0
ответ дан akrun 18 August 2018 в 17:27
поделиться

Опция с dplyr заключается в выборе строк, игнорирующих 1-ю строку

library(dplyr)
df %>%
  group_by(group) %>%
  slice(2:n())

#  group score
#  <dbl> <dbl>
#1  1.00 10.0 
#2  1.00 22.0 
#3  2.00  6.00
#4  3.00 20.0 
#5  4.00  2.00
#6  4.00 60.0 
#7  5.00  5.00

. Другой способ показан @Rich Scriven в теперь удаленном ответе

df %>%
  group_by(group) %>%
  slice(-1)
0
ответ дан Ronak Shah 18 August 2018 в 17:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: