Zastanawiam się, jak korzystać z funkcji subset
, jeśli nie znam nazwy kolumny, którą chcę przetestować. Scenariusz jest następujący: Mam aplikację Shiny, w której użytkownik może wybrać zmienną, w której ma filtrować (podzbiór) tabelę danych. Otrzymuję nazwę kolumny z webapp jako wejście, a ja chcę do podzbioru na podstawie wartości tej kolumny, tak jak poniżej:Podzbiór na podstawie zmiennej nazwa kolumny
subset(myData, THECOLUMN == someValue)
wyjątkiem sytuacji, gdy zarówno THECOLUMN
i someValue
są zmienne. Czy istnieje składnia służąca do podania pożądanej nazwy kolumny jako ciągu znaków?
Wygląda na to, że chcemy mieć bareword będący nazwą kolumny, a nie zmienną zawierającą nazwę kolumny.
Wygląda na to, że robi to, co chcę, ale jeszcze go nie zweryfikowałem. Zaznaczę to jako odpowiedź i kontynuuję, jeśli mam problemy. – adv12
Ryzykując głupie, czy to się różni, jeśli korzystam z data.table, a nie data.frame? Wygląda na. Przy pomocy data.table mogę użyć "d [d [, theColumnName] ==" c ',] ", ale wydaje mi się, że nie mogę używać" d [d, "nazwaKolumny"] ==' c ",]". – adv12
@ adv12 Nie, 'data.table' działa inaczej i (IMHO) niewiarygodnie tępo (ku mojej ogromnej i powtarzającej się frustracji). Chcę powiedzieć, że plik data.table musi być tak ustawiony, aby to zrobić: 'setkey (d," x "); d ["c"] '. Ale zawsze znajdowałem dane.składnia tabeli tak nieprzejrzysta, że zwykle kończę na "prostszych" metodach. – joran