Agata Bielak

Agata Bielak Grupa Cyfrowy Polsat

Temat: tablice

Witam,

Długo nie używałam programu R stąd moje banalne pytanie:
Czy mogę do tablicy dopisać wartości tekstowe?

Ta informacja jest mi potrzebna żeby sprawnie uzupełniać dane na mapkach (mam do zrobienia ok 20 mapek i nie chce mi się ich za każdym razem ręcznie aktualizować)

Temat: tablice

Co masz na myśli mówiąc "dopisać do tablicy wartości tekstowe"? Gdzie dopisać? Jako kolejny wiersz ramki danych? Jako nazwa wiersza? Można i jedno i drugie.

Na wszelki wypadek przypomnę, że dopisanie choć jednej wartości tekstowej do kolumny o typie "numeric" zmieni jej typ na "character". Dotyczy to ramek, tablic, wektorów, macierzy.

 > (dane <- data.frame(kolumna_numeric = c(1,2,3,4,5)))
kolumna_numeric
1 1
2 2
3 3
4 4
5 5
> class(dane$kolumna_numeric)
[1] "numeric"
> dane <- rbind(dane, "A")
> class(dane$kolumna_numeric)
[1] "character"

> dane <- array()
> dane[1] <- 1
> str(dane)
num [1(1d)] 1
> dane[2] <- "B"
> str(dane)
chr [1:2] "1" "B"

> m <- matrix(c(1,2,3,4), nrow=2)
> str(m)
num [1:2, 1:2] 1 2 3 4
> m[2,2] <- "B"
> str(m)
chr [1:2, 1:2] "1" "2" "3" "B"


Co do samych map - niestety, nie korzystałem, nie znam się.Ten post został edytowany przez Autora dnia 10.10.14 o godzinie 13:25
Agata Bielak

Agata Bielak Grupa Cyfrowy Polsat

Temat: tablice

To wiele wyjaśniła, ponieważ utworzyłam macierz :
> (nw=matrix(0,1,16))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[1,] 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[,15] [,16]
[1,] 0 0


a następnie chciałam ją wypełnić nazwami województw... Mam nadzieję, że tylko tu leży problem.

dziękuję za odpowiedź :)Ten post został edytowany przez Autora dnia 10.10.14 o godzinie 13:45

Temat: tablice

I na czym polega problem? Chcesz uzyskać wektor nazw województw?
nw <- c("śląskie", "dolnośląskie"..itd..)

w Twoim przypadku nw[1] <- "śląskie"; nw[2] <- "dolnośląskie", itd.Ten post został edytowany przez Autora dnia 10.10.14 o godzinie 14:19
Agata Bielak

Agata Bielak Grupa Cyfrowy Polsat

Temat: tablice

Chce uzyskać wektor województw z wartościami w %, które chce w łatwy sposób zmieniać. Pomyślałam, że najprostszym sposobem będzie wczytanie ich z pliku...

Mój wektor do 1 z 20 mapek:
(nw <- c("zachodnio-\npomorskie 0,84%","pomorskie 3,79%","warmińsko-\nmazurskie 1,77%","lubuskie 3,58%","wielkopolskie 6,91%","kujawsko-\npomorskie 4,76%","podlaskie 1,85%","łódzkie 7,37%","mazowieckie 5,77%","lubelskie 2,86%","dolnośląskie 2,44%","opolskie 1,39%","śląskie 17,9%","małopolskie 19%","świętokrzyskie 3,66%","podkarpackie 16,09%"))
Agata Bielak

Agata Bielak Grupa Cyfrowy Polsat

Temat: tablice

Już udało mi się dojść gdzie leży problem, nie zrobiłam z wczytanych danych macierzy...

Temat: tablice

No to utwórz plik tekstowy, gdzie każdy rekord będzie w nowej linii, o wartościach rozdzielanych jakimś separatorem (przecinkiem, tabulatorem, średnikiem - jak wygodniej) . Excel pilnuje separatora, nie będzie problemu z kropkami i przecinkami:

"Woj;Proc
zachodnio-\npomorskie;0,84%
pomorskie;3,79%
......"

Plik możesz utworzyć ręcznie albo za pomocą jakiegoś arkusza kalkulacyjnego (tylko pilnuj formatu komórki z procentami, bo większość arkuszy zmieni go z "tekstowego" na "procentowy").
Następnie wczytaj go w R:

> (dane <- read.csv("c:/tmp/dane.csv", header=T, sep=";"))
Woj Proc
1 zachodnio-\\npomorskie 0,84%
2 pomorskie 3,79%
......


Potem sklej wartości:
> paste(dane$Woj, dane$Proc)
[1] "zachodnio-\\npomorskie 0,84%" "pomorskie 3,79%"


Możesz skonwertować wynik do macierzy (wektora):
> as.matrix(t(paste(dane$Woj, dane$Proc)))
[,1] [,2]
[1,] "zachodnio-\\npomorskie 0,84%" "pomorskie 3,79%"


EDIT: widzę, że już rozwiązałaś swój problem.Ten post został edytowany przez Autora dnia 10.10.14 o godzinie 15:11
Agata Bielak

Agata Bielak Grupa Cyfrowy Polsat

Temat: tablice

Tak rozwiązałam<- konwersja typów zawsze sprawia mi trudność (w niemalże każdym języku :/ )

Dziękuję za wskazanie dobrego tropu :)

Następna dyskusja:

Tablice rejestracyjne bez c...




Wyślij zaproszenie do