Temat: Wektor

Moge prosic o sprawdzenie poprawnosci wygenerowanego wektora?

Chcialam zrobic dzialania na tyych wektorach:
v1 <- rnorm(500,mean=80,sd=10)
v2 <- rnorm(500,mean=110,sd=5)

I: sprawdzic, czy wart. w obu wektorach na danej pozycji sa>100.
Jezeli tak to obie wartosci pomnozyc przez siebie i dopisac do wektora wynik, a jak nie to podzielic i dopisac do wektora wynik.

Na koncu wyswietlic wektor wynik z komentarzem.

I moje rozwiazanie:

v1 <- rnorm(500,mean=80,sd=10)
v2 <- rnorm(500,mean=110,sd=5)

wynik <- c()

if(length(v1)==length(v2)){cat("\nPodane wtktory maja taka sama ilosc elementow\n")}
if(length(v1)!=length(v2)){cat("\nUWAGA podane wektory roznia sie iloscia elementow !!!\n")}

v1[c(10)]
v2[c(10)] #wieksza od v1

if(v1[c(10)]>100){cat("\nTRUE\n")}
if(v2[c(10)]>100){cat("\nTRUE\n")}

in "for(i in 1:10000 & i<-c(v1[c(10)])*c(v2[c(10)])){if (c(v1[c(10)])!=c(v2[c(10)])}"
> cat("Wynik: ",i)

Temat: Wektor

Może to się przyda
v <- (v1 > 100) & (v2 > 100)
vv <- v1 * v2 ^ (v * 2 - 1)
Ten post został edytowany przez Autora dnia 19.10.15 o godzinie 00:15

Temat: Wektor

Wojciech B.:
Może to się przyda
v <- (v1 > 100) & (v2 > 100)
vv <- v1 * v2 ^ (v * 2 - 1)
>

Bardzo zgrabna konstrukcja. Poznać dobrego programistę :)

To samo, ale typowo "eRowo":
vvv <- ifelse(v1 > 100 & v2 > 100, v1*v2, v1/v2)


Sprawdzenie:
 > set.seed(18)
> v1 <- rnorm(500,mean=80,sd=10)
> v2 <- rnorm(500,mean=110,sd=5)

> v <- (v1 > 100) & (v2 > 100)
> vv <- v1 * v2 ^ (v * 2 - 1)

> vvv <- ifelse(v1>100 & v2>100, v1*v2, v1/v2)

> all.equal(vv, vvv)
[1] TRUE
> round(data.frame(vv = tail(vv), vvv = tail(vvv)), 5)
vv vvv
1 0.66272 0.66272
2 10495.38787 10495.38787
3 0.81395 0.81395
4 0.78715 0.78715
5 0.55770 0.55770
6 12560.30648 12560.30648

Następna dyskusja:

dump wektor




Wyślij zaproszenie do