Próbuję napisać pętli for, które spowodują przyrost jej wartości przez 2. Równowartość kodu c jestNa pętli w R z przyrostami
for (i=0; i<=78; i=i+2)
Jak mogę osiągnąć to samo w R?
Próbuję napisać pętli for, które spowodują przyrost jej wartości przez 2. Równowartość kodu c jestNa pętli w R z przyrostami
for (i=0; i<=78; i=i+2)
Jak mogę osiągnąć to samo w R?
Zobacz ?seq
o więcej informacji:
for(i in seq(from=1, to=78, by=2)){
# stuff, such as
print(i)
}
lub
for(i in seq(1, 78, 2))
PS: Wybacz mi ignorancję C. Tam po prostu się wyprowadziłem.
Jest to jednak sposób, aby robić to, co chcesz w R (proszę zobaczyć zaktualizowany kod)
EDIT
Po zapoznaniu się trochę jak C działa, to wygląda na przykład pisał w pytanie iteruje w następującej sekwencji: 0 2 4 6 8 ... 74 76 78
.
Aby powielić dokładnie to w R, zacznij od 0
zamiast od 1
, jak wyżej.
seq(from=0, to=78, by=2)
[1] 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44
[24] 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78
@Probabilityman Pewnie warto dodać, że często używanie 'pętli for 'jest niepotrzebne w R. Jeśli podasz dokładniejszy przykład twojego konkretnego problemu (lub zadaj inne pytanie), całkiem możliwe, że' for loop' można całkowicie pominąć. Na przykład 'print (seq (1,72.2)) robi to samo co kod dostarczony przez BenBarnesa. – Justin
... a przykład @ Justina jest znacznie szybszy. Wyszukaj w Internecie "r dla pętli", aby uzyskać więcej informacji. – BenBarnes
@Justin, print (seq (1,72,2)) daje inną wydajność. Pętla drukuje każdy element jako 1-tkę (w osobnej linii). Nie żeby to było preferowane. Jeśli pętlę można zastąpić operacją wektorową (lub zastosować), prawdopodobnie powinno to być. –
proszę wysłać bardziej kompletny przykład ... w R jest prawdopodobne, że faktycznie nie chcesz pętli for. – John