У меня есть df RawDat
с двумя рядами ID, data
.Я хочу выполнить grep () моих данных по идентификатору, используя, например, lapply (), чтобы сгенерировать новый df, где данные сортируются по столбцам по их id: мой df выглядит так, за исключением того, что у меня> 80000 строк и 75 идентификаторов:
ID data
abl 564
dlh 78
vho 354
mez 15
abl 662
dlh 69
vho 333
mez 9
.
.
.
Я могу вручную извлечь данные с помощью функции grep ():
ExtRawDat = as.data.frame(RawDat[grep("abl",RawDat$ID),])
Однако я бы не хотел делать это 75 раз и cbind () им.Скорее, я хотел бы использовать функцию lapply () для ее автоматизации.Я пробовал несколько вариантов следующего кода, но у меня нет сценария, который обеспечивает желаемый результат.
У меня есть вектор с 75 идентификаторами ProLisV
, чтобы зациклить мой аргумент
ExtRawDat = as.data.frame(lapply(ProLisV[1:75],function(x){
Temp1 = RawDat[grep(x,RawDat$ID),] # The issue is here, the pattern is not properly defined with the X input (is it detrimental that some of the names in the list having spaces etc.?)
Values = as.data.frame(Temp1$data)
list(Values$data)
}))
Требуемый выход выглядит следующим образом:
abl dlh vho mez ...
564 78 354 15
662 69 333 9
.
.
.
Как настроить эту функцию для обеспечения желаемого выхода?Спасибо.