Czytam to z pliku CSV i muszę napisać funkcję, która generuje ostateczną ramkę danych, więc biorąc pod uwagę konkretny wpis, mam
x [1] {2,4,5,11,12}
139 poziomów: {1,2,3,4,5,6,7,12,17} ...
mogę to zmienić na x2 <-as.character (x)
co daje mi
x [1] „{2,4,5,11,12}”
jak wyodrębnić 2,4,5,11,12? (posiadający 5 elementów)
Próbowałem używać różnych sposobów, takich jak gsub, ale bezskutecznie
Czy ktoś może mi pomóc?
Odpowiedzi:
2 dla odpowiedzi № 1Wygląda na to, że próbujesz zaimportować tabelę bazy danych zawierającą tablice. Ponieważ R nie wie o takich strukturach danych, traktuje je jak tekst.
Spróbuj tego. Zakładam, że kolumna, o której mowa, to x
. Wynikiem będzie lista, a każdy element będzie wektorem wartości tablic dla tego wiersza w tabeli.
dat <- read.csv("<file>", stringsAsFactors=FALSE)
dat$x <- strsplit(gsub("\{(.*)\}", "\1", dat$x), ",")