Loop over a data frame comparing elements of the firts and second row
up vote
1
down vote
favorite
I want to loop over a dataframe, I want to compare one of the elements of the actual row and the next row.
for example, I have a data frame that looks like this:
V1 V2 V3 V4
1 chr1 10 1000 2000
2 chr1 10 2000 3000
3 chr1 10 4000 5000
.
.
.
I would like to compare the element of the 1st row and 4th column with the element of the 2nd row and third column, and if they are the same do something, then the element of the 2nd row and 4th column with the element of the 3th row and 3th column, do something and so on.
So I am trying something like this:
for (i in 1:nrow(my_dataframe)){
if (my_dataframe[i, 4] == my_dataframe[i+1 , 3]) {
print("OK")
}
}
So this would give me for example 1 OK with my example data frame
However it looks that R doesn't like the i + 1, because is giving me the next error:
Error in if (tabla4subset[i, 4] > tabla4subset[i + 1, 3]) { :
missing value where TRUE/FALSE needed
Some one know how to do this?
r
bumped to the homepage by Community♦ 2 days ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
up vote
1
down vote
favorite
I want to loop over a dataframe, I want to compare one of the elements of the actual row and the next row.
for example, I have a data frame that looks like this:
V1 V2 V3 V4
1 chr1 10 1000 2000
2 chr1 10 2000 3000
3 chr1 10 4000 5000
.
.
.
I would like to compare the element of the 1st row and 4th column with the element of the 2nd row and third column, and if they are the same do something, then the element of the 2nd row and 4th column with the element of the 3th row and 3th column, do something and so on.
So I am trying something like this:
for (i in 1:nrow(my_dataframe)){
if (my_dataframe[i, 4] == my_dataframe[i+1 , 3]) {
print("OK")
}
}
So this would give me for example 1 OK with my example data frame
However it looks that R doesn't like the i + 1, because is giving me the next error:
Error in if (tabla4subset[i, 4] > tabla4subset[i + 1, 3]) { :
missing value where TRUE/FALSE needed
Some one know how to do this?
r
bumped to the homepage by Community♦ 2 days ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I want to loop over a dataframe, I want to compare one of the elements of the actual row and the next row.
for example, I have a data frame that looks like this:
V1 V2 V3 V4
1 chr1 10 1000 2000
2 chr1 10 2000 3000
3 chr1 10 4000 5000
.
.
.
I would like to compare the element of the 1st row and 4th column with the element of the 2nd row and third column, and if they are the same do something, then the element of the 2nd row and 4th column with the element of the 3th row and 3th column, do something and so on.
So I am trying something like this:
for (i in 1:nrow(my_dataframe)){
if (my_dataframe[i, 4] == my_dataframe[i+1 , 3]) {
print("OK")
}
}
So this would give me for example 1 OK with my example data frame
However it looks that R doesn't like the i + 1, because is giving me the next error:
Error in if (tabla4subset[i, 4] > tabla4subset[i + 1, 3]) { :
missing value where TRUE/FALSE needed
Some one know how to do this?
r
I want to loop over a dataframe, I want to compare one of the elements of the actual row and the next row.
for example, I have a data frame that looks like this:
V1 V2 V3 V4
1 chr1 10 1000 2000
2 chr1 10 2000 3000
3 chr1 10 4000 5000
.
.
.
I would like to compare the element of the 1st row and 4th column with the element of the 2nd row and third column, and if they are the same do something, then the element of the 2nd row and 4th column with the element of the 3th row and 3th column, do something and so on.
So I am trying something like this:
for (i in 1:nrow(my_dataframe)){
if (my_dataframe[i, 4] == my_dataframe[i+1 , 3]) {
print("OK")
}
}
So this would give me for example 1 OK with my example data frame
However it looks that R doesn't like the i + 1, because is giving me the next error:
Error in if (tabla4subset[i, 4] > tabla4subset[i + 1, 3]) { :
missing value where TRUE/FALSE needed
Some one know how to do this?
r
r
asked Jun 18 '17 at 22:38
Eric González
3015
3015
bumped to the homepage by Community♦ 2 days ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 2 days ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
I think that I know which was the problem.
i + 1 = nrow(my_dataframe) + 1
So for example, if my data frame is of 10 rows, I am trying to compare at the end the row 10 with the row 11 that doesn't exist. So the solution was:
for (i in 1:(nrow(my_dataframe)-1)) {
if(my_dataframe[i, 4] == my_dataframe[i + 1, 3]) {
print("OK")
}
}
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
I think that I know which was the problem.
i + 1 = nrow(my_dataframe) + 1
So for example, if my data frame is of 10 rows, I am trying to compare at the end the row 10 with the row 11 that doesn't exist. So the solution was:
for (i in 1:(nrow(my_dataframe)-1)) {
if(my_dataframe[i, 4] == my_dataframe[i + 1, 3]) {
print("OK")
}
}
add a comment |
up vote
0
down vote
I think that I know which was the problem.
i + 1 = nrow(my_dataframe) + 1
So for example, if my data frame is of 10 rows, I am trying to compare at the end the row 10 with the row 11 that doesn't exist. So the solution was:
for (i in 1:(nrow(my_dataframe)-1)) {
if(my_dataframe[i, 4] == my_dataframe[i + 1, 3]) {
print("OK")
}
}
add a comment |
up vote
0
down vote
up vote
0
down vote
I think that I know which was the problem.
i + 1 = nrow(my_dataframe) + 1
So for example, if my data frame is of 10 rows, I am trying to compare at the end the row 10 with the row 11 that doesn't exist. So the solution was:
for (i in 1:(nrow(my_dataframe)-1)) {
if(my_dataframe[i, 4] == my_dataframe[i + 1, 3]) {
print("OK")
}
}
I think that I know which was the problem.
i + 1 = nrow(my_dataframe) + 1
So for example, if my data frame is of 10 rows, I am trying to compare at the end the row 10 with the row 11 that doesn't exist. So the solution was:
for (i in 1:(nrow(my_dataframe)-1)) {
if(my_dataframe[i, 4] == my_dataframe[i + 1, 3]) {
print("OK")
}
}
answered Jun 19 '17 at 3:04
Eric González
3015
3015
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- 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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2funix.stackexchange.com%2fquestions%2f371867%2floop-over-a-data-frame-comparing-elements-of-the-firts-and-second-row%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