How to make R skip for 2:n cycle in case n = 1?












2















I have the next query.
I have a cycle



for (i in 2:n) { ... }


and it executes twice in case n = 1 for i equals 2 and then for 1, but I want this cycle isn't been executed at all in such case.
I've also tried



seq(from = 2, to = 1, by = 1)


but it generates exception.



I guess than common question, but I am new in that language and wasn't able to bypass it or find workaround in internet.
Thank you in advance.










share|improve this question


















  • 2





    : or seq don't work that way. You could use the length.out param in seq: seq(from = 2, to = n,length.out = (n-2)+1)

    – Omri374
    Jan 1 at 13:37


















2















I have the next query.
I have a cycle



for (i in 2:n) { ... }


and it executes twice in case n = 1 for i equals 2 and then for 1, but I want this cycle isn't been executed at all in such case.
I've also tried



seq(from = 2, to = 1, by = 1)


but it generates exception.



I guess than common question, but I am new in that language and wasn't able to bypass it or find workaround in internet.
Thank you in advance.










share|improve this question


















  • 2





    : or seq don't work that way. You could use the length.out param in seq: seq(from = 2, to = n,length.out = (n-2)+1)

    – Omri374
    Jan 1 at 13:37
















2












2








2








I have the next query.
I have a cycle



for (i in 2:n) { ... }


and it executes twice in case n = 1 for i equals 2 and then for 1, but I want this cycle isn't been executed at all in such case.
I've also tried



seq(from = 2, to = 1, by = 1)


but it generates exception.



I guess than common question, but I am new in that language and wasn't able to bypass it or find workaround in internet.
Thank you in advance.










share|improve this question














I have the next query.
I have a cycle



for (i in 2:n) { ... }


and it executes twice in case n = 1 for i equals 2 and then for 1, but I want this cycle isn't been executed at all in such case.
I've also tried



seq(from = 2, to = 1, by = 1)


but it generates exception.



I guess than common question, but I am new in that language and wasn't able to bypass it or find workaround in internet.
Thank you in advance.







r range






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 1 at 13:24









LinearLeopardLinearLeopard

981111




981111








  • 2





    : or seq don't work that way. You could use the length.out param in seq: seq(from = 2, to = n,length.out = (n-2)+1)

    – Omri374
    Jan 1 at 13:37
















  • 2





    : or seq don't work that way. You could use the length.out param in seq: seq(from = 2, to = n,length.out = (n-2)+1)

    – Omri374
    Jan 1 at 13:37










2




2





: or seq don't work that way. You could use the length.out param in seq: seq(from = 2, to = n,length.out = (n-2)+1)

– Omri374
Jan 1 at 13:37







: or seq don't work that way. You could use the length.out param in seq: seq(from = 2, to = n,length.out = (n-2)+1)

– Omri374
Jan 1 at 13:37














1 Answer
1






active

oldest

votes


















7














Use seq_len which is safer to use



n <- 1
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Does not print anything

n <- 4
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Check 2
#Check 3
#Check 4


When you use 2:n and when n = 1 it gives



2:1
#[1] 2 1


hence, it runs the loop twice.






share|improve this answer



















  • 2





    I made a stupid mistake. It should be seq_len(n-1) + 1.

    – mt1022
    Jan 1 at 14:51











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53995795%2fhow-to-make-r-skip-for-2n-cycle-in-case-n-1%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









7














Use seq_len which is safer to use



n <- 1
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Does not print anything

n <- 4
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Check 2
#Check 3
#Check 4


When you use 2:n and when n = 1 it gives



2:1
#[1] 2 1


hence, it runs the loop twice.






share|improve this answer



















  • 2





    I made a stupid mistake. It should be seq_len(n-1) + 1.

    – mt1022
    Jan 1 at 14:51
















7














Use seq_len which is safer to use



n <- 1
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Does not print anything

n <- 4
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Check 2
#Check 3
#Check 4


When you use 2:n and when n = 1 it gives



2:1
#[1] 2 1


hence, it runs the loop twice.






share|improve this answer



















  • 2





    I made a stupid mistake. It should be seq_len(n-1) + 1.

    – mt1022
    Jan 1 at 14:51














7












7








7







Use seq_len which is safer to use



n <- 1
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Does not print anything

n <- 4
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Check 2
#Check 3
#Check 4


When you use 2:n and when n = 1 it gives



2:1
#[1] 2 1


hence, it runs the loop twice.






share|improve this answer













Use seq_len which is safer to use



n <- 1
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Does not print anything

n <- 4
for (i in seq_len(n)[-1]) {
cat("Check", i, "n")
}

#Check 2
#Check 3
#Check 4


When you use 2:n and when n = 1 it gives



2:1
#[1] 2 1


hence, it runs the loop twice.







share|improve this answer












share|improve this answer



share|improve this answer










answered Jan 1 at 13:33









Ronak ShahRonak Shah

39.8k104162




39.8k104162








  • 2





    I made a stupid mistake. It should be seq_len(n-1) + 1.

    – mt1022
    Jan 1 at 14:51














  • 2





    I made a stupid mistake. It should be seq_len(n-1) + 1.

    – mt1022
    Jan 1 at 14:51








2




2





I made a stupid mistake. It should be seq_len(n-1) + 1.

– mt1022
Jan 1 at 14:51





I made a stupid mistake. It should be seq_len(n-1) + 1.

– mt1022
Jan 1 at 14:51




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53995795%2fhow-to-make-r-skip-for-2n-cycle-in-case-n-1%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

ts Property 'filter' does not exist on type '{}'

mat-slide-toggle shouldn't change it's state when I click cancel in confirmation window