creating two variables based on selective elimination and pair combinations
I have a data of the following form. The data has information about three projects- 1, 2,3 and I would like to calculate the trips of colleagues and purchases till prior year but I want to eliminate all the projects in which he is taking part till that point(and only consider projects in which he is not part of). For example, see below:
id<- c(1,1,2,2,2,3,3)
person<- c('John','Kevin', 'John', 'Matt', 'Alvin', 'Kevin', 'Alvin')
trips<- c(4,2,5,2,3,4,5)
purchase<- c(6,4,3,4,5,5,6)
join_year<- c(2009,2008,2008,2007,2007, 2008,2008)
df<- data.frame(id, person, trips, purchase, year)
I would like to create two variables called pr_trips_colleagues (referring to prior year) and pr_purchases_colleagues(referring to prior year). I would like to have a final output as follows:
person year pr_trips_colleagues pr_purchase_colleagues
John 2009 5 6
John 2008 0 0
John 2007 0 0
Kevin 2009 8 8
Kevin 2008 0 0
Kevin 2007 0 0
Matt 2009 5 6
Matt 2008 0 0
Matt 2007 0 0
Alvin 2009 2 4
Alvin 2008 0 0
Alvin 2007 0 0
Please provide suggestions on how to obtain this? Thanks so much.
r dplyr plyr tidyr
|
show 3 more comments
I have a data of the following form. The data has information about three projects- 1, 2,3 and I would like to calculate the trips of colleagues and purchases till prior year but I want to eliminate all the projects in which he is taking part till that point(and only consider projects in which he is not part of). For example, see below:
id<- c(1,1,2,2,2,3,3)
person<- c('John','Kevin', 'John', 'Matt', 'Alvin', 'Kevin', 'Alvin')
trips<- c(4,2,5,2,3,4,5)
purchase<- c(6,4,3,4,5,5,6)
join_year<- c(2009,2008,2008,2007,2007, 2008,2008)
df<- data.frame(id, person, trips, purchase, year)
I would like to create two variables called pr_trips_colleagues (referring to prior year) and pr_purchases_colleagues(referring to prior year). I would like to have a final output as follows:
person year pr_trips_colleagues pr_purchase_colleagues
John 2009 5 6
John 2008 0 0
John 2007 0 0
Kevin 2009 8 8
Kevin 2008 0 0
Kevin 2007 0 0
Matt 2009 5 6
Matt 2008 0 0
Matt 2007 0 0
Alvin 2009 2 4
Alvin 2008 0 0
Alvin 2007 0 0
Please provide suggestions on how to obtain this? Thanks so much.
r dplyr plyr tidyr
I changed that to join year to indicate that he joined in that year
– user3570187
Nov 12 at 22:31
1
You are right it should be same across..
– user3570187
Nov 12 at 22:32
1
I've read this 3 times and I have no idea how you are getting that result from that input. Can you give any more detail on how the values in the final output are calculated?
– thelatemail
Nov 12 at 22:38
For example, let’s take John, he has participated in two projects 1 and 2 though he joined 1 in 2009 and 2 in 2008, so for calculating the 2007, he will 0 and 0 as he did not have colleagues till 2006, then for 2008, we need to look his activities till 2007, so the values won’t change as he did not join any project, but for 2009, we need to look at his projects till 2008, he took part in project 2, so Matt and Alvin became colleagues, and Alvin took part in project 3 in which John was not part of, hence the values become 5 and 6 respectively, Kevin became colleague to John in 2009 so not incl
– user3570187
Nov 12 at 22:51
Replace the word till with in in the comment above
– user3570187
Nov 12 at 22:52
|
show 3 more comments
I have a data of the following form. The data has information about three projects- 1, 2,3 and I would like to calculate the trips of colleagues and purchases till prior year but I want to eliminate all the projects in which he is taking part till that point(and only consider projects in which he is not part of). For example, see below:
id<- c(1,1,2,2,2,3,3)
person<- c('John','Kevin', 'John', 'Matt', 'Alvin', 'Kevin', 'Alvin')
trips<- c(4,2,5,2,3,4,5)
purchase<- c(6,4,3,4,5,5,6)
join_year<- c(2009,2008,2008,2007,2007, 2008,2008)
df<- data.frame(id, person, trips, purchase, year)
I would like to create two variables called pr_trips_colleagues (referring to prior year) and pr_purchases_colleagues(referring to prior year). I would like to have a final output as follows:
person year pr_trips_colleagues pr_purchase_colleagues
John 2009 5 6
John 2008 0 0
John 2007 0 0
Kevin 2009 8 8
Kevin 2008 0 0
Kevin 2007 0 0
Matt 2009 5 6
Matt 2008 0 0
Matt 2007 0 0
Alvin 2009 2 4
Alvin 2008 0 0
Alvin 2007 0 0
Please provide suggestions on how to obtain this? Thanks so much.
r dplyr plyr tidyr
I have a data of the following form. The data has information about three projects- 1, 2,3 and I would like to calculate the trips of colleagues and purchases till prior year but I want to eliminate all the projects in which he is taking part till that point(and only consider projects in which he is not part of). For example, see below:
id<- c(1,1,2,2,2,3,3)
person<- c('John','Kevin', 'John', 'Matt', 'Alvin', 'Kevin', 'Alvin')
trips<- c(4,2,5,2,3,4,5)
purchase<- c(6,4,3,4,5,5,6)
join_year<- c(2009,2008,2008,2007,2007, 2008,2008)
df<- data.frame(id, person, trips, purchase, year)
I would like to create two variables called pr_trips_colleagues (referring to prior year) and pr_purchases_colleagues(referring to prior year). I would like to have a final output as follows:
person year pr_trips_colleagues pr_purchase_colleagues
John 2009 5 6
John 2008 0 0
John 2007 0 0
Kevin 2009 8 8
Kevin 2008 0 0
Kevin 2007 0 0
Matt 2009 5 6
Matt 2008 0 0
Matt 2007 0 0
Alvin 2009 2 4
Alvin 2008 0 0
Alvin 2007 0 0
Please provide suggestions on how to obtain this? Thanks so much.
r dplyr plyr tidyr
r dplyr plyr tidyr
asked Nov 12 at 22:27
user3570187
605621
605621
I changed that to join year to indicate that he joined in that year
– user3570187
Nov 12 at 22:31
1
You are right it should be same across..
– user3570187
Nov 12 at 22:32
1
I've read this 3 times and I have no idea how you are getting that result from that input. Can you give any more detail on how the values in the final output are calculated?
– thelatemail
Nov 12 at 22:38
For example, let’s take John, he has participated in two projects 1 and 2 though he joined 1 in 2009 and 2 in 2008, so for calculating the 2007, he will 0 and 0 as he did not have colleagues till 2006, then for 2008, we need to look his activities till 2007, so the values won’t change as he did not join any project, but for 2009, we need to look at his projects till 2008, he took part in project 2, so Matt and Alvin became colleagues, and Alvin took part in project 3 in which John was not part of, hence the values become 5 and 6 respectively, Kevin became colleague to John in 2009 so not incl
– user3570187
Nov 12 at 22:51
Replace the word till with in in the comment above
– user3570187
Nov 12 at 22:52
|
show 3 more comments
I changed that to join year to indicate that he joined in that year
– user3570187
Nov 12 at 22:31
1
You are right it should be same across..
– user3570187
Nov 12 at 22:32
1
I've read this 3 times and I have no idea how you are getting that result from that input. Can you give any more detail on how the values in the final output are calculated?
– thelatemail
Nov 12 at 22:38
For example, let’s take John, he has participated in two projects 1 and 2 though he joined 1 in 2009 and 2 in 2008, so for calculating the 2007, he will 0 and 0 as he did not have colleagues till 2006, then for 2008, we need to look his activities till 2007, so the values won’t change as he did not join any project, but for 2009, we need to look at his projects till 2008, he took part in project 2, so Matt and Alvin became colleagues, and Alvin took part in project 3 in which John was not part of, hence the values become 5 and 6 respectively, Kevin became colleague to John in 2009 so not incl
– user3570187
Nov 12 at 22:51
Replace the word till with in in the comment above
– user3570187
Nov 12 at 22:52
I changed that to join year to indicate that he joined in that year
– user3570187
Nov 12 at 22:31
I changed that to join year to indicate that he joined in that year
– user3570187
Nov 12 at 22:31
1
1
You are right it should be same across..
– user3570187
Nov 12 at 22:32
You are right it should be same across..
– user3570187
Nov 12 at 22:32
1
1
I've read this 3 times and I have no idea how you are getting that result from that input. Can you give any more detail on how the values in the final output are calculated?
– thelatemail
Nov 12 at 22:38
I've read this 3 times and I have no idea how you are getting that result from that input. Can you give any more detail on how the values in the final output are calculated?
– thelatemail
Nov 12 at 22:38
For example, let’s take John, he has participated in two projects 1 and 2 though he joined 1 in 2009 and 2 in 2008, so for calculating the 2007, he will 0 and 0 as he did not have colleagues till 2006, then for 2008, we need to look his activities till 2007, so the values won’t change as he did not join any project, but for 2009, we need to look at his projects till 2008, he took part in project 2, so Matt and Alvin became colleagues, and Alvin took part in project 3 in which John was not part of, hence the values become 5 and 6 respectively, Kevin became colleague to John in 2009 so not incl
– user3570187
Nov 12 at 22:51
For example, let’s take John, he has participated in two projects 1 and 2 though he joined 1 in 2009 and 2 in 2008, so for calculating the 2007, he will 0 and 0 as he did not have colleagues till 2006, then for 2008, we need to look his activities till 2007, so the values won’t change as he did not join any project, but for 2009, we need to look at his projects till 2008, he took part in project 2, so Matt and Alvin became colleagues, and Alvin took part in project 3 in which John was not part of, hence the values become 5 and 6 respectively, Kevin became colleague to John in 2009 so not incl
– user3570187
Nov 12 at 22:51
Replace the word till with in in the comment above
– user3570187
Nov 12 at 22:52
Replace the word till with in in the comment above
– user3570187
Nov 12 at 22:52
|
show 3 more comments
active
oldest
votes
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%2f53271004%2fcreating-two-variables-based-on-selective-elimination-and-pair-combinations%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f53271004%2fcreating-two-variables-based-on-selective-elimination-and-pair-combinations%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
I changed that to join year to indicate that he joined in that year
– user3570187
Nov 12 at 22:31
1
You are right it should be same across..
– user3570187
Nov 12 at 22:32
1
I've read this 3 times and I have no idea how you are getting that result from that input. Can you give any more detail on how the values in the final output are calculated?
– thelatemail
Nov 12 at 22:38
For example, let’s take John, he has participated in two projects 1 and 2 though he joined 1 in 2009 and 2 in 2008, so for calculating the 2007, he will 0 and 0 as he did not have colleagues till 2006, then for 2008, we need to look his activities till 2007, so the values won’t change as he did not join any project, but for 2009, we need to look at his projects till 2008, he took part in project 2, so Matt and Alvin became colleagues, and Alvin took part in project 3 in which John was not part of, hence the values become 5 and 6 respectively, Kevin became colleague to John in 2009 so not incl
– user3570187
Nov 12 at 22:51
Replace the word till with in in the comment above
– user3570187
Nov 12 at 22:52