Remove isolated elements of a vectorHow to access the last value in a vector?Concatenating two...
How is this property called for mod?
Does it take energy to move something in a circle?
How can I prevent an oracle who can see into the past from knowing everything that has happened?
Single-row INSERT...SELECT much slower than separate SELECT
Was there a pre-determined arrangement for the division of Germany in case it surrendered before any Soviet forces entered its territory?
Is there any danger of my neighbor having my wife's signature?
Why do neural networks need so many examples to perform?
Is it really OK to use "because of"?
What does an unprocessed RAW file look like?
Modern Algebraic Geometry and Analytic Number Theory
Can me and my friend spend the summer in Canada (6 weeks) at 16 years old without an adult?
Why didn't Tom Riddle take the presence of Fawkes and the Sorting Hat as more of a threat?
Minimum Viable Product for RTS game?
Coworker asking me to not bring cakes due to self control issue. What should I do?
Count repetitions of an array
How do I avoid the "chosen hero" feeling?
Renting a 2CV in France
How bad is a Computer Science course that doesn't teach Design Patterns?
Plausible reason for gold-digging ant
Boss asked me to sign a resignation paper without a date on it along with my new contract
How to deal with an underperforming subordinate?
How can I handle players killing my NPC outside of combat?
Context html export bibliography
Remove isolated elements of a vector
Remove isolated elements of a vector
How to access the last value in a vector?Concatenating two std::vectorsHow to find out if an item is present in a std::vector?How do I erase an element from std::vector<> by index?Test if a vector contains a given elementWhy is Java Vector (and Stack) class considered obsolete or deprecated?Counting the number of elements with the values of x in a vectorWhat is the easiest way to initialize a std::vector with hardcoded elements?Appending a vector to a vectorReshaping vector with indices in python
I have a vector of integers and I want to filter it by eliminating the components that are "isolated".
What do I mean by "isolated"? those components that does not lie in an 4-neighbourhood of other component.
The components in the vector are ordered increasingly, and there are no repetitions.
For example if I have c(1,2,3,8,15,16,17)
then I need to eliminate 8
because is not in a 4-neighbourhood of other element.
I've tried applying
for (p in 1:(length(index)-2))
if((index[p+1]>3+index[p])&(index[p+2]>3+index[p+1])){index[p+1]<-0}
index<-index[index!=0]
where index
is my vector of interest, but there's some problem with the logical condition.
Could you please give me some hints?
Thanks in advance.
r if-statement vector
add a comment |
I have a vector of integers and I want to filter it by eliminating the components that are "isolated".
What do I mean by "isolated"? those components that does not lie in an 4-neighbourhood of other component.
The components in the vector are ordered increasingly, and there are no repetitions.
For example if I have c(1,2,3,8,15,16,17)
then I need to eliminate 8
because is not in a 4-neighbourhood of other element.
I've tried applying
for (p in 1:(length(index)-2))
if((index[p+1]>3+index[p])&(index[p+2]>3+index[p+1])){index[p+1]<-0}
index<-index[index!=0]
where index
is my vector of interest, but there's some problem with the logical condition.
Could you please give me some hints?
Thanks in advance.
r if-statement vector
add a comment |
I have a vector of integers and I want to filter it by eliminating the components that are "isolated".
What do I mean by "isolated"? those components that does not lie in an 4-neighbourhood of other component.
The components in the vector are ordered increasingly, and there are no repetitions.
For example if I have c(1,2,3,8,15,16,17)
then I need to eliminate 8
because is not in a 4-neighbourhood of other element.
I've tried applying
for (p in 1:(length(index)-2))
if((index[p+1]>3+index[p])&(index[p+2]>3+index[p+1])){index[p+1]<-0}
index<-index[index!=0]
where index
is my vector of interest, but there's some problem with the logical condition.
Could you please give me some hints?
Thanks in advance.
r if-statement vector
I have a vector of integers and I want to filter it by eliminating the components that are "isolated".
What do I mean by "isolated"? those components that does not lie in an 4-neighbourhood of other component.
The components in the vector are ordered increasingly, and there are no repetitions.
For example if I have c(1,2,3,8,15,16,17)
then I need to eliminate 8
because is not in a 4-neighbourhood of other element.
I've tried applying
for (p in 1:(length(index)-2))
if((index[p+1]>3+index[p])&(index[p+2]>3+index[p+1])){index[p+1]<-0}
index<-index[index!=0]
where index
is my vector of interest, but there's some problem with the logical condition.
Could you please give me some hints?
Thanks in advance.
r if-statement vector
r if-statement vector
edited 4 hours ago
Ramiro Scorolli
asked 4 hours ago
Ramiro ScorolliRamiro Scorolli
1748
1748
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
You can achieve it with a combination of outer
and colSums
, i.e.
x[colSums(abs(outer(x, x, `-`)) >= 4) == length(x)-1]
#[1] 8
To eliminate the values, we can do,
i1 <- colSums(outer(x, x, FUN = function(i, j) abs(i - j) >= 4)) == length(x) - 1
x[!i1]
#[1] 1 2 3 15 16 17
where,
x <- c(1,2,3,8,15,16,17)
add a comment |
We keep values where preceding or next difference is lower or equal to 4 :
v <- c(1,2,3,8,15,16,17)
v[c(FALSE, abs(diff(v)) <= 4) | c(abs(diff(v)) <= 4, FALSE)]
Neat, but since the vector is assumed to be ordered, you can even remove theabs
:)
– nate
12 mins ago
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%2f54862344%2fremove-isolated-elements-of-a-vector%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can achieve it with a combination of outer
and colSums
, i.e.
x[colSums(abs(outer(x, x, `-`)) >= 4) == length(x)-1]
#[1] 8
To eliminate the values, we can do,
i1 <- colSums(outer(x, x, FUN = function(i, j) abs(i - j) >= 4)) == length(x) - 1
x[!i1]
#[1] 1 2 3 15 16 17
where,
x <- c(1,2,3,8,15,16,17)
add a comment |
You can achieve it with a combination of outer
and colSums
, i.e.
x[colSums(abs(outer(x, x, `-`)) >= 4) == length(x)-1]
#[1] 8
To eliminate the values, we can do,
i1 <- colSums(outer(x, x, FUN = function(i, j) abs(i - j) >= 4)) == length(x) - 1
x[!i1]
#[1] 1 2 3 15 16 17
where,
x <- c(1,2,3,8,15,16,17)
add a comment |
You can achieve it with a combination of outer
and colSums
, i.e.
x[colSums(abs(outer(x, x, `-`)) >= 4) == length(x)-1]
#[1] 8
To eliminate the values, we can do,
i1 <- colSums(outer(x, x, FUN = function(i, j) abs(i - j) >= 4)) == length(x) - 1
x[!i1]
#[1] 1 2 3 15 16 17
where,
x <- c(1,2,3,8,15,16,17)
You can achieve it with a combination of outer
and colSums
, i.e.
x[colSums(abs(outer(x, x, `-`)) >= 4) == length(x)-1]
#[1] 8
To eliminate the values, we can do,
i1 <- colSums(outer(x, x, FUN = function(i, j) abs(i - j) >= 4)) == length(x) - 1
x[!i1]
#[1] 1 2 3 15 16 17
where,
x <- c(1,2,3,8,15,16,17)
edited 4 hours ago
answered 4 hours ago
SotosSotos
30.1k51640
30.1k51640
add a comment |
add a comment |
We keep values where preceding or next difference is lower or equal to 4 :
v <- c(1,2,3,8,15,16,17)
v[c(FALSE, abs(diff(v)) <= 4) | c(abs(diff(v)) <= 4, FALSE)]
Neat, but since the vector is assumed to be ordered, you can even remove theabs
:)
– nate
12 mins ago
add a comment |
We keep values where preceding or next difference is lower or equal to 4 :
v <- c(1,2,3,8,15,16,17)
v[c(FALSE, abs(diff(v)) <= 4) | c(abs(diff(v)) <= 4, FALSE)]
Neat, but since the vector is assumed to be ordered, you can even remove theabs
:)
– nate
12 mins ago
add a comment |
We keep values where preceding or next difference is lower or equal to 4 :
v <- c(1,2,3,8,15,16,17)
v[c(FALSE, abs(diff(v)) <= 4) | c(abs(diff(v)) <= 4, FALSE)]
We keep values where preceding or next difference is lower or equal to 4 :
v <- c(1,2,3,8,15,16,17)
v[c(FALSE, abs(diff(v)) <= 4) | c(abs(diff(v)) <= 4, FALSE)]
answered 4 hours ago
ClemsangClemsang
32429
32429
Neat, but since the vector is assumed to be ordered, you can even remove theabs
:)
– nate
12 mins ago
add a comment |
Neat, but since the vector is assumed to be ordered, you can even remove theabs
:)
– nate
12 mins ago
Neat, but since the vector is assumed to be ordered, you can even remove the
abs
:)– nate
12 mins ago
Neat, but since the vector is assumed to be ordered, you can even remove the
abs
:)– nate
12 mins ago
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%2f54862344%2fremove-isolated-elements-of-a-vector%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