How to make R skip for 2:n cycle in case n = 1?
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
add a comment |
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
2
:
orseq
don't work that way. You could use thelength.out
param in seq:seq(from = 2, to = n,length.out = (n-2)+1)
– Omri374
Jan 1 at 13:37
add a comment |
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
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
r range
asked Jan 1 at 13:24
LinearLeopardLinearLeopard
981111
981111
2
:
orseq
don't work that way. You could use thelength.out
param in seq:seq(from = 2, to = n,length.out = (n-2)+1)
– Omri374
Jan 1 at 13:37
add a comment |
2
:
orseq
don't work that way. You could use thelength.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
add a comment |
1 Answer
1
active
oldest
votes
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.
2
I made a stupid mistake. It should beseq_len(n-1) + 1
.
– mt1022
Jan 1 at 14:51
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
2
I made a stupid mistake. It should beseq_len(n-1) + 1
.
– mt1022
Jan 1 at 14:51
add a comment |
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.
2
I made a stupid mistake. It should beseq_len(n-1) + 1
.
– mt1022
Jan 1 at 14:51
add a comment |
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.
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.
answered Jan 1 at 13:33
Ronak ShahRonak Shah
39.8k104162
39.8k104162
2
I made a stupid mistake. It should beseq_len(n-1) + 1
.
– mt1022
Jan 1 at 14:51
add a comment |
2
I made a stupid mistake. It should beseq_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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
2
:
orseq
don't work that way. You could use thelength.out
param in seq:seq(from = 2, to = n,length.out = (n-2)+1)
– Omri374
Jan 1 at 13:37