Ancora con R

gcappellotto
Salve a tutti
Sono alle prime armi con il soft R e purtroppo ho ancora dei problemi:
"E'possibile estrarre solo i numeri pari da un vettore ad es: 1 3 5 8 10 6 5 1 e farne l'elenco?"

Grazie per l'aiuto
Giovanni C

Risposte
Umby2
in che senso pari ?
il secondo, il quarto, il sesto ?

oppure il contenuto del vettore ?

gcappellotto
Divisibili per 2, scegliendoli dalla lista che ho riportata
Giovanni C

Fioravante Patrone1
Il primo azzera gli elementi pari, il secondo quelli dispari:

#N è il numero di elementi del vettore
N <- 8
#Z è un numero che non compare nell'elenco
Z <- 3.71
# V <- [1 , 3, 5, 8, 10, 6, 5, 1]

V <- matrix(c(1,3,5,8,10,6,5,1),ncol=N)
W <- matrix(c(0,0,0,0,0,0,0,0),ncol=N)

V
W

#for (I in 1:N)   {
#if (V[I] - 2*floor(V[I]/2) == 0) {W[I] <- Z} else {W[I] <- V[I]}
#}#end "for" per I

I <- 1
while (I <= N) 
if (V[I] - 2*floor(V[I]/2) == 0) {I <- I+1} else {
W[I] <- V[I]
I <- I+1
}
W


°°°°°°°°°°°°°°°°°°°°°°

#N è il numero di elementi del vettore
N <- 8
#Z è un numero che non compare nell'elenco
Z <- 3.71
# V <- [1 , 3, 5, 8, 10, 6, 5, 1]

V <- matrix(c(1,3,5,8,10,6,5,1),ncol=N)
W <- matrix(c(0,0,0,0,0,0,0,0),ncol=N)

V
W

#for (I in 1:N)   {
#if (V[I] - 2*floor(V[I]/2) == 0) {W[I] <- Z} else {W[I] <- V[I]}
#}#end "for" per I

I <- 1
while (I <= N) 
if (V[I] - 2*floor(V[I]/2) == 0) {
W[I] <- V[I]
I <- I+1
} else {I <- I+1}
W

Umby2
"gcappellotto":
Divisibili per 2, scegliendoli dalla lista che ho riportata
Giovanni C


Per capire se una variabile è pari puoi:

if (x==floor(x/2)*2) .......

Fioravante Patrone1
OT:

"Sergio":
Ehm..... si può essere più sintetici.
Non ne dubitavo :-D
Gli è che:
- sono alle prime armi
- non mi piacciono i programmi sintetici (sour grapes?)

PS: però ammetto che è carino. E ho anche imparato qualcosa.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.