Subset error when trying to double subset
up vote
0
down vote
favorite
I have the following data:
Year Sex Age
1991 0 Group1
1991 0 Group2
1991 1 Group1
1991 1 Group2
1992 0 Group1
1992 0 Group2
1992 1 Group1
1992 1 Group2
I am trying to subset it into several different subsets,
I used
male <- df1[df1$sex == 1, ]
But in the second step, when I was trying to use
age1male <- male[male$Age == Group1, ]
again to further subset it, the outcome becomes messy, many rows of the year appear to be NA
, and the number in the first column becomes something like NA.78
, NA.9
etc, I don't know what's wrong.
r
|
show 2 more comments
up vote
0
down vote
favorite
I have the following data:
Year Sex Age
1991 0 Group1
1991 0 Group2
1991 1 Group1
1991 1 Group2
1992 0 Group1
1992 0 Group2
1992 1 Group1
1992 1 Group2
I am trying to subset it into several different subsets,
I used
male <- df1[df1$sex == 1, ]
But in the second step, when I was trying to use
age1male <- male[male$Age == Group1, ]
again to further subset it, the outcome becomes messy, many rows of the year appear to be NA
, and the number in the first column becomes something like NA.78
, NA.9
etc, I don't know what's wrong.
r
1
male[male$Age == "Group1", ]
(the double-quotes matter); also, if you're usingattach()
anywhere, don't. it causes more harm than good in the long run.
– hrbrmstr
Nov 10 at 20:55
@hrbrmstr hi, Thanks! But unfortunately, it still has the same problem when I added the quotes, any other ideas?
– The R
Nov 10 at 21:01
Not without a larger data sample (you can do that by doing something like dput(head(df1, 50))` and putting the output in a code block (lines prefixed with 4 spaces).50
is arbitrary. Any # that's representative would be good. The output ofsessionInfo()
andls.str()
(again, in code blocks) would help, too. A link to the data file is fine if that'd be easier than thedput()
– hrbrmstr
Nov 10 at 21:04
1
Make sure the column name matches:male <- df1[df1$Sex == 1,]
(note the capital)
– mickey
Nov 10 at 21:04
1
How about this:subset(df1, Sex==1 & Age=='Group1')
?
– Edward Carney
Nov 10 at 21:20
|
show 2 more comments
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have the following data:
Year Sex Age
1991 0 Group1
1991 0 Group2
1991 1 Group1
1991 1 Group2
1992 0 Group1
1992 0 Group2
1992 1 Group1
1992 1 Group2
I am trying to subset it into several different subsets,
I used
male <- df1[df1$sex == 1, ]
But in the second step, when I was trying to use
age1male <- male[male$Age == Group1, ]
again to further subset it, the outcome becomes messy, many rows of the year appear to be NA
, and the number in the first column becomes something like NA.78
, NA.9
etc, I don't know what's wrong.
r
I have the following data:
Year Sex Age
1991 0 Group1
1991 0 Group2
1991 1 Group1
1991 1 Group2
1992 0 Group1
1992 0 Group2
1992 1 Group1
1992 1 Group2
I am trying to subset it into several different subsets,
I used
male <- df1[df1$sex == 1, ]
But in the second step, when I was trying to use
age1male <- male[male$Age == Group1, ]
again to further subset it, the outcome becomes messy, many rows of the year appear to be NA
, and the number in the first column becomes something like NA.78
, NA.9
etc, I don't know what's wrong.
r
r
edited Nov 10 at 20:56
hrbrmstr
57.8k584143
57.8k584143
asked Nov 10 at 20:51
The R
32
32
1
male[male$Age == "Group1", ]
(the double-quotes matter); also, if you're usingattach()
anywhere, don't. it causes more harm than good in the long run.
– hrbrmstr
Nov 10 at 20:55
@hrbrmstr hi, Thanks! But unfortunately, it still has the same problem when I added the quotes, any other ideas?
– The R
Nov 10 at 21:01
Not without a larger data sample (you can do that by doing something like dput(head(df1, 50))` and putting the output in a code block (lines prefixed with 4 spaces).50
is arbitrary. Any # that's representative would be good. The output ofsessionInfo()
andls.str()
(again, in code blocks) would help, too. A link to the data file is fine if that'd be easier than thedput()
– hrbrmstr
Nov 10 at 21:04
1
Make sure the column name matches:male <- df1[df1$Sex == 1,]
(note the capital)
– mickey
Nov 10 at 21:04
1
How about this:subset(df1, Sex==1 & Age=='Group1')
?
– Edward Carney
Nov 10 at 21:20
|
show 2 more comments
1
male[male$Age == "Group1", ]
(the double-quotes matter); also, if you're usingattach()
anywhere, don't. it causes more harm than good in the long run.
– hrbrmstr
Nov 10 at 20:55
@hrbrmstr hi, Thanks! But unfortunately, it still has the same problem when I added the quotes, any other ideas?
– The R
Nov 10 at 21:01
Not without a larger data sample (you can do that by doing something like dput(head(df1, 50))` and putting the output in a code block (lines prefixed with 4 spaces).50
is arbitrary. Any # that's representative would be good. The output ofsessionInfo()
andls.str()
(again, in code blocks) would help, too. A link to the data file is fine if that'd be easier than thedput()
– hrbrmstr
Nov 10 at 21:04
1
Make sure the column name matches:male <- df1[df1$Sex == 1,]
(note the capital)
– mickey
Nov 10 at 21:04
1
How about this:subset(df1, Sex==1 & Age=='Group1')
?
– Edward Carney
Nov 10 at 21:20
1
1
male[male$Age == "Group1", ]
(the double-quotes matter); also, if you're using attach()
anywhere, don't. it causes more harm than good in the long run.– hrbrmstr
Nov 10 at 20:55
male[male$Age == "Group1", ]
(the double-quotes matter); also, if you're using attach()
anywhere, don't. it causes more harm than good in the long run.– hrbrmstr
Nov 10 at 20:55
@hrbrmstr hi, Thanks! But unfortunately, it still has the same problem when I added the quotes, any other ideas?
– The R
Nov 10 at 21:01
@hrbrmstr hi, Thanks! But unfortunately, it still has the same problem when I added the quotes, any other ideas?
– The R
Nov 10 at 21:01
Not without a larger data sample (you can do that by doing something like dput(head(df1, 50))` and putting the output in a code block (lines prefixed with 4 spaces).
50
is arbitrary. Any # that's representative would be good. The output of sessionInfo()
and ls.str()
(again, in code blocks) would help, too. A link to the data file is fine if that'd be easier than the dput()
– hrbrmstr
Nov 10 at 21:04
Not without a larger data sample (you can do that by doing something like dput(head(df1, 50))` and putting the output in a code block (lines prefixed with 4 spaces).
50
is arbitrary. Any # that's representative would be good. The output of sessionInfo()
and ls.str()
(again, in code blocks) would help, too. A link to the data file is fine if that'd be easier than the dput()
– hrbrmstr
Nov 10 at 21:04
1
1
Make sure the column name matches:
male <- df1[df1$Sex == 1,]
(note the capital)– mickey
Nov 10 at 21:04
Make sure the column name matches:
male <- df1[df1$Sex == 1,]
(note the capital)– mickey
Nov 10 at 21:04
1
1
How about this:
subset(df1, Sex==1 & Age=='Group1')
?– Edward Carney
Nov 10 at 21:20
How about this:
subset(df1, Sex==1 & Age=='Group1')
?– Edward Carney
Nov 10 at 21:20
|
show 2 more comments
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f53243283%2fsubset-error-when-trying-to-double-subset%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
1
male[male$Age == "Group1", ]
(the double-quotes matter); also, if you're usingattach()
anywhere, don't. it causes more harm than good in the long run.– hrbrmstr
Nov 10 at 20:55
@hrbrmstr hi, Thanks! But unfortunately, it still has the same problem when I added the quotes, any other ideas?
– The R
Nov 10 at 21:01
Not without a larger data sample (you can do that by doing something like dput(head(df1, 50))` and putting the output in a code block (lines prefixed with 4 spaces).
50
is arbitrary. Any # that's representative would be good. The output ofsessionInfo()
andls.str()
(again, in code blocks) would help, too. A link to the data file is fine if that'd be easier than thedput()
– hrbrmstr
Nov 10 at 21:04
1
Make sure the column name matches:
male <- df1[df1$Sex == 1,]
(note the capital)– mickey
Nov 10 at 21:04
1
How about this:
subset(df1, Sex==1 & Age=='Group1')
?– Edward Carney
Nov 10 at 21:20