У меня есть фрейм данных R с данными от нескольких субъектов, каждый из которых проверен несколько раз.Для выполнения статистики на множестве есть фактор для субъекта («id») и строка для каждого наблюдения (заданная фактором «session»).Т.е.
print(allData)
id session measure
1 1 7.6
2 1 4.5
3 1 5.5
1 2 7.1
2 2 NA
3 2 4.9
В вышеприведенном примере есть простой способ удалить все строки с id == 2, учитывая, что столбец "measure" содержит NA в одной из строк, где id == 2?
В более общем смысле, поскольку у меня действительно много мер (столбцов) и четырех сессий (строк) для каждого предмета, существует ли элегантный способ удалить все строки с заданным уровнем фактора «id»,учитывая, что (хотя бы) одна из строк с этим уровнем «id» содержит NA в столбце?
У меня есть интуиция, что может быть встроенная функция, которая могла бы решить эту проблему более элегантно, чеммое текущее решение:
# Which columns to check for NA's in
probeColumns = c('measure1','measure4') # Etc...
# A vector which contains all levels of "id" that are present in rows with NA's in the probeColumns
idsWithNAs = allData[complete.cases(allData[probeColumns])==FALSE,"id"]
# All rows that isn't in idsWithNAs
cleanedData = allData[!allData$id %in% idsWithNAs,]
Спасибо, / Jonas