ja przeglądania dataframe na badania z użyciem View
:Programowo zamknąć okno utworzone przez `View (x)`
my_df <- data.frame(a=1:10, b=letters[1:10])
View(my_df)
Chciałbym teraz zamknąć okno wynikowy programowo (zamiast kliknięcie Przycisk X).
Jak mogę to zrobić? graphics.off
nie działa, ponieważ nie jest urządzeniem graficznym. Patrząc na kod View
, wewnętrzna funkcja dataviewer
jest używana do wyświetlania okna, ale nie jestem pewien, co używa w tle (tcltk?), Więc nie jestem pewien, jak zamknąć okno.
Kilka uwag na temat tego, dlaczego tego chcę.
Zasadniczo robię krok sprawdzający użytkownika w skrypcie, dzięki czemu użytkownik jest pytany, czy fragment ramki danych i odpowiadający mu obraz pasują do siebie. To idzie tak:
for (i in 1:heaps) {
1. View(a snippet of a big dataframe)
2. show an image
3. readline('Is this OK? [Y/N]: ') (store the i for which it's not OK)
4. close the image window (graphics.off()), close the View(..) window.
}
I w zasadzie chciał ograniczyć interakcji użytkownika w dół patrząc na obraz & dataframe urywek i wpisując Y lub N, dzięki czemu nie trzeba ręcznie zamknij okno th dataframe dla każdego i
w pętli.
(Jestem w trakcie tej walidacji osobiście i mam do czynienia z oknami 200 View(snippet)
, których nie zawracałem sobie głowy zamykaniem D:. Zauważyłem także, że otwarcie okna kradnie klawiaturę z dala od monitu więc pisanie na klawiaturze nie jest tak szybkie, jak bym chciał, ale muszę to zrobić tylko raz, więc na razie to zrobię, ale jestem ciekawy co do odpowiedzi na to pytanie, na następny raz).
Wydaje mi się, że 'Widok' jest interaktywnym narzędziem przez doskonałość, więc wydaje się trochę sprzeczne, że chcesz go zamknąć * programowo *. Czy z ciekawości mógłbyś wyjaśnić, w jaki sposób chcesz użyć widoku "View" w kontekście programowym?W przeciwieństwie do pisania np. 'My_df' do pliku csv w celu ewentualnej recenzji. Wciąż mam nadzieję, że ktoś przyjdzie z miłą odpowiedzią. – flodel
Jeśli dobrze rozumiem, chcesz uruchomić linię kodu (jedną trzeba będzie uruchomić ręcznie), aby zamknąć okno. Więc jeśli chcesz uzyskać kod, natychmiast otworzy i zamknie okno? –
Dodałem trochę wyjaśnienia co do mojej motywacji w pytaniu. Zasadniczo pytam użytkownika, aby porównać niektóre wiersze ramki danych z obrazem i wpisać Y/N, czy pasują do siebie, czy nie (walidacja użytkownika). Po prostu chcę, aby było to tak proste, jak to tylko możliwe, ponieważ to ja dokonuję walidacji! –