У меня есть некоторые данные о повторяющихся мерах, которые я пытаюсь очистить в R
. На данный момент он находится в длинном формате, и я пытаюсь исправить некоторые записи до того, как перейду в широкий формат - например, если люди слишком много раз проводили мой опрос, я собираюсь сбросить строки. У меня есть две основные проблемы, которые я пытаюсь решить:Удалить строку из data.frame на основании условия
Изменение записи
Если кто-то взял обзор от «предтестового связи», когда он был на самом деле должен быть пост-тест, я «м фиксации его с помощью следующего кода:
data[data$UserID == 52118254, "Prepost"][2] <- 2
Это отфильтровывает запись из этого лица на основе ID, а затем изменяет вторую запись, чтобы быть закодирован как пост-тест. Этот код имеет достаточно смысла, что его просмотр говорит мне, что происходит.
Удаление строки
Я изо всех сил, чтобы получить содержательный код для удаления лишних строк - например, если кто-то случайно нажал на мою ссылку дважды. У меня есть данные, как в следующем:
UserID Prepost Duration..in.seconds.
1 52118250 1 357
2 52118284 1 226
3 52118284 1 11 #This is an extra attempt to remove
4 52118250 2 261
5 52118284 2 151
#to reproduce:
structure(list(UserID = c(52118250, 52118284, 52118284, 52118250, 52118284), Prepost = c("1", "1", "1", "2", "2"), Duration..in.seconds. = c("357", "226", "11", "261", "151")), class = "data.frame", row.names = c(NA, -5L), .Names = c("UserID", "Prepost", "Duration..in.seconds."))
можно фильтровать по UserID, чтобы увидеть, кто взял его слишком много раз, и я ищу способ легко удалить эти строки из набора данных. В этом случае UserID 52118284 занимает три раза, а вторая попытка должна быть удалена. Если это «читаемо», как и другое исправление, это лучше.
Возможно, 'df [! Duplicated (взаимодействие (df $ UserID, df $ Prepost)),]'? –
@A Я думаю, что это могло бы работать, если бы были системные проблемы, но мне нужно пройти несколько раз в каждом случае и определить, какой из них ошибочен. –