R уникальный метод игнорируется аргументом - PullRequest
2 голосов
/ 25 января 2020

пытаюсь сделать несколько быстрых манипуляций с данными в R, и я очень новичок в этом.

Итак, я пытаюсь использовать уникальную функцию для некоторых данных, и я хочу сохранить способность сохранять уникальные строки, основанные на некоторой комбинации столбцов. Как я понимаю из документации, это должно быть возможно с помощью аргумента «by» для уникального метода, но поскольку я не могу заставить это работать.

У меня есть dataTest:

  name age
1    A   1
2    B   2
3    C   1

после использования unique(dataTest,by="age") вывод не изменится, в то время как я ожидаю, что он изменится на имя age

1    A   1
2    B   2

см. привязку для кода в действии.

Опять же, это, вероятно, новичок ошибка, но я не могу понять это, очень ценю помощь.

Ответы [ 2 ]

2 голосов
/ 25 января 2020

Мы можем использовать distinct

library(dplyr)
df %>%
   distinct(age)
2 голосов
/ 25 января 2020

Я думаю, что у вас есть датафрейм, конвертируйте его в data.table, и он должен работать. Смотрите разницу в выводе

1) Когда это фрейм данных.

df <- structure(list(name = structure(1:3, .Label = c("A", "B", "C"
), class = "factor"), age = c(1L, 2L, 1L)), class = "data.frame", 
row.names = c("1", "2", "3"))

unique(df, by = "age")
#  name age
#1    A   1
#2    B   2
#3    C   1

2) После изменения на data.table

library(data.table)

setDT(df)
unique(df, by = "age")

#   name age
#1:    A   1
#2:    B   2

Другой вариант - использовать duplicated

df[!duplicated(df$age), ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...