Extract top_n variables name for each group
For each group, I'm trying to get the top_n car_names to appear in a new column comma separated.
For example, when you run the code below you'll see the top 2 mpg cars per group (cyl). Next, I want to extract the top two cars (or more, if there is a tie) and store them together into a new column called car_summary.
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>% top_n(2,Score)
The expected output looks like below
cyl <- c(8,4,6)
car_summary <- c("Pontiac Firebird, Hornet Sportabout", "Toyota Corolla,
Fiat 128", "Hornet 4 Drive, Mazda RX4, Mazda RX4 Wag")
data.frame(cyl, car_summary)
cyl car_summary
1 8 Pontiac Firebird, Hornet Sportabout
2 4 Toyota Corolla, Fiat 128
3 6 Hornet 4 Drive, Mazda RX4, Mazda RX4 Wag
r dplyr
add a comment |
For each group, I'm trying to get the top_n car_names to appear in a new column comma separated.
For example, when you run the code below you'll see the top 2 mpg cars per group (cyl). Next, I want to extract the top two cars (or more, if there is a tie) and store them together into a new column called car_summary.
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>% top_n(2,Score)
The expected output looks like below
cyl <- c(8,4,6)
car_summary <- c("Pontiac Firebird, Hornet Sportabout", "Toyota Corolla,
Fiat 128", "Hornet 4 Drive, Mazda RX4, Mazda RX4 Wag")
data.frame(cyl, car_summary)
cyl car_summary
1 8 Pontiac Firebird, Hornet Sportabout
2 4 Toyota Corolla, Fiat 128
3 6 Hornet 4 Drive, Mazda RX4, Mazda RX4 Wag
r dplyr
almost there. just add%>% summarise(car_summary = paste(car_name, collapse = ", "))to your piped code.
– Mankind_008
Nov 13 '18 at 4:54
add a comment |
For each group, I'm trying to get the top_n car_names to appear in a new column comma separated.
For example, when you run the code below you'll see the top 2 mpg cars per group (cyl). Next, I want to extract the top two cars (or more, if there is a tie) and store them together into a new column called car_summary.
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>% top_n(2,Score)
The expected output looks like below
cyl <- c(8,4,6)
car_summary <- c("Pontiac Firebird, Hornet Sportabout", "Toyota Corolla,
Fiat 128", "Hornet 4 Drive, Mazda RX4, Mazda RX4 Wag")
data.frame(cyl, car_summary)
cyl car_summary
1 8 Pontiac Firebird, Hornet Sportabout
2 4 Toyota Corolla, Fiat 128
3 6 Hornet 4 Drive, Mazda RX4, Mazda RX4 Wag
r dplyr
For each group, I'm trying to get the top_n car_names to appear in a new column comma separated.
For example, when you run the code below you'll see the top 2 mpg cars per group (cyl). Next, I want to extract the top two cars (or more, if there is a tie) and store them together into a new column called car_summary.
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>% top_n(2,Score)
The expected output looks like below
cyl <- c(8,4,6)
car_summary <- c("Pontiac Firebird, Hornet Sportabout", "Toyota Corolla,
Fiat 128", "Hornet 4 Drive, Mazda RX4, Mazda RX4 Wag")
data.frame(cyl, car_summary)
cyl car_summary
1 8 Pontiac Firebird, Hornet Sportabout
2 4 Toyota Corolla, Fiat 128
3 6 Hornet 4 Drive, Mazda RX4, Mazda RX4 Wag
r dplyr
r dplyr
edited Nov 13 '18 at 4:56
Shree
3,3111323
3,3111323
asked Nov 13 '18 at 4:44
bannerism
31
31
almost there. just add%>% summarise(car_summary = paste(car_name, collapse = ", "))to your piped code.
– Mankind_008
Nov 13 '18 at 4:54
add a comment |
almost there. just add%>% summarise(car_summary = paste(car_name, collapse = ", "))to your piped code.
– Mankind_008
Nov 13 '18 at 4:54
almost there. just add
%>% summarise(car_summary = paste(car_name, collapse = ", ")) to your piped code.– Mankind_008
Nov 13 '18 at 4:54
almost there. just add
%>% summarise(car_summary = paste(car_name, collapse = ", ")) to your piped code.– Mankind_008
Nov 13 '18 at 4:54
add a comment |
1 Answer
1
active
oldest
votes
You need toString from base R -
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>%
top_n(2,Score) %>%
summarize(car_summary = toString(car_name))
Thanks - I was trying to use "pull()" and didn't even think of using base R.
– bannerism
Nov 13 '18 at 15:00
pullis for getting a dataframe column as a vector. Basicallypull(car_name)would give same result asmtcars2$car_name
– Shree
Nov 13 '18 at 15:20
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%2f53273960%2fextract-top-n-variables-name-for-each-group%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
You need toString from base R -
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>%
top_n(2,Score) %>%
summarize(car_summary = toString(car_name))
Thanks - I was trying to use "pull()" and didn't even think of using base R.
– bannerism
Nov 13 '18 at 15:00
pullis for getting a dataframe column as a vector. Basicallypull(car_name)would give same result asmtcars2$car_name
– Shree
Nov 13 '18 at 15:20
add a comment |
You need toString from base R -
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>%
top_n(2,Score) %>%
summarize(car_summary = toString(car_name))
Thanks - I was trying to use "pull()" and didn't even think of using base R.
– bannerism
Nov 13 '18 at 15:00
pullis for getting a dataframe column as a vector. Basicallypull(car_name)would give same result asmtcars2$car_name
– Shree
Nov 13 '18 at 15:20
add a comment |
You need toString from base R -
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>%
top_n(2,Score) %>%
summarize(car_summary = toString(car_name))
You need toString from base R -
mtcars2 %>%
select(mpg, cyl, car_name) %>%
group_by(cyl) %>%
mutate(Score = rank(mpg, ties.method = "max")) %>%
arrange(desc(Score)) %>%
top_n(2,Score) %>%
summarize(car_summary = toString(car_name))
answered Nov 13 '18 at 4:50
Shree
3,3111323
3,3111323
Thanks - I was trying to use "pull()" and didn't even think of using base R.
– bannerism
Nov 13 '18 at 15:00
pullis for getting a dataframe column as a vector. Basicallypull(car_name)would give same result asmtcars2$car_name
– Shree
Nov 13 '18 at 15:20
add a comment |
Thanks - I was trying to use "pull()" and didn't even think of using base R.
– bannerism
Nov 13 '18 at 15:00
pullis for getting a dataframe column as a vector. Basicallypull(car_name)would give same result asmtcars2$car_name
– Shree
Nov 13 '18 at 15:20
Thanks - I was trying to use "pull()" and didn't even think of using base R.
– bannerism
Nov 13 '18 at 15:00
Thanks - I was trying to use "pull()" and didn't even think of using base R.
– bannerism
Nov 13 '18 at 15:00
pull is for getting a dataframe column as a vector. Basically pull(car_name) would give same result as mtcars2$car_name– Shree
Nov 13 '18 at 15:20
pull is for getting a dataframe column as a vector. Basically pull(car_name) would give same result as mtcars2$car_name– Shree
Nov 13 '18 at 15:20
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.
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%2fstackoverflow.com%2fquestions%2f53273960%2fextract-top-n-variables-name-for-each-group%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
almost there. just add
%>% summarise(car_summary = paste(car_name, collapse = ", "))to your piped code.– Mankind_008
Nov 13 '18 at 4:54