Running predictive model according to values in column
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have a dataframe (I might in future not use it):
> PM
names.model.
1 4
2 5
3 6
4 8
5 9
It means that for value of 4
for instance I'll use model[1]
, for value of 5
I'll use model[2]
etc.
As already mentioned I have a list of model (from 1 to 5).
I have another dataframe, that has a column TN
.
As can be seen:
> head (test)
Ozone Solar.R Wind Temp Month Day TN
2 36 118 8.0 72 5 2 4
8 19 99 13.8 59 5 8 4
14 14 274 10.9 68 5 14 5
40 71 291 13.8 90 6 9 9
62 135 269 4.1 84 7 1 8
69 97 267 6.3 92 7 8 9
I would like to run the add a new column test$Ozone_pred
that will run the relevant model per line. For instance, for the first line I'll run model[1]
as well as for the second line (both are 4). For the third line I'll run model[2]
, for the forth line model[5]
etc.
r dataframe prediction
add a comment |
I have a dataframe (I might in future not use it):
> PM
names.model.
1 4
2 5
3 6
4 8
5 9
It means that for value of 4
for instance I'll use model[1]
, for value of 5
I'll use model[2]
etc.
As already mentioned I have a list of model (from 1 to 5).
I have another dataframe, that has a column TN
.
As can be seen:
> head (test)
Ozone Solar.R Wind Temp Month Day TN
2 36 118 8.0 72 5 2 4
8 19 99 13.8 59 5 8 4
14 14 274 10.9 68 5 14 5
40 71 291 13.8 90 6 9 9
62 135 269 4.1 84 7 1 8
69 97 267 6.3 92 7 8 9
I would like to run the add a new column test$Ozone_pred
that will run the relevant model per line. For instance, for the first line I'll run model[1]
as well as for the second line (both are 4). For the third line I'll run model[2]
, for the forth line model[5]
etc.
r dataframe prediction
Hard to replicate your data like that.
– Bram
Nov 23 '18 at 13:46
add a comment |
I have a dataframe (I might in future not use it):
> PM
names.model.
1 4
2 5
3 6
4 8
5 9
It means that for value of 4
for instance I'll use model[1]
, for value of 5
I'll use model[2]
etc.
As already mentioned I have a list of model (from 1 to 5).
I have another dataframe, that has a column TN
.
As can be seen:
> head (test)
Ozone Solar.R Wind Temp Month Day TN
2 36 118 8.0 72 5 2 4
8 19 99 13.8 59 5 8 4
14 14 274 10.9 68 5 14 5
40 71 291 13.8 90 6 9 9
62 135 269 4.1 84 7 1 8
69 97 267 6.3 92 7 8 9
I would like to run the add a new column test$Ozone_pred
that will run the relevant model per line. For instance, for the first line I'll run model[1]
as well as for the second line (both are 4). For the third line I'll run model[2]
, for the forth line model[5]
etc.
r dataframe prediction
I have a dataframe (I might in future not use it):
> PM
names.model.
1 4
2 5
3 6
4 8
5 9
It means that for value of 4
for instance I'll use model[1]
, for value of 5
I'll use model[2]
etc.
As already mentioned I have a list of model (from 1 to 5).
I have another dataframe, that has a column TN
.
As can be seen:
> head (test)
Ozone Solar.R Wind Temp Month Day TN
2 36 118 8.0 72 5 2 4
8 19 99 13.8 59 5 8 4
14 14 274 10.9 68 5 14 5
40 71 291 13.8 90 6 9 9
62 135 269 4.1 84 7 1 8
69 97 267 6.3 92 7 8 9
I would like to run the add a new column test$Ozone_pred
that will run the relevant model per line. For instance, for the first line I'll run model[1]
as well as for the second line (both are 4). For the third line I'll run model[2]
, for the forth line model[5]
etc.
r dataframe prediction
r dataframe prediction
edited Nov 23 '18 at 13:41
Avi
asked Nov 23 '18 at 13:30
AviAvi
1,0311734
1,0311734
Hard to replicate your data like that.
– Bram
Nov 23 '18 at 13:46
add a comment |
Hard to replicate your data like that.
– Bram
Nov 23 '18 at 13:46
Hard to replicate your data like that.
– Bram
Nov 23 '18 at 13:46
Hard to replicate your data like that.
– Bram
Nov 23 '18 at 13:46
add a comment |
1 Answer
1
active
oldest
votes
There are a couple options. First would be to use dplyr's join function to just add your first dataframe (PM) to the second one (test) as a new column and then index based on that. Below is a solution with base R.
To get the correct function for a single row as your current PM is:
model[match(test_TN_number, PM[,2])]
If PM doesn't have the first column equal to row numbers, then:
model[PM[match(test_TN_number, PM[,2])],1]
This is then easily extended to the whole dataframe with apply or within a loop.
Edit: here's a for looped version:
for (test_TN_number in test[,"TN"]){
model[PM[match(test_TN_number, PM[,2])],1]
}
Thanks @Aaro Viertiö, Can you add the apply for the whole dataframe (or loop).
– Avi
Nov 23 '18 at 13:59
Added a looped version.
– Aaro Viertiö
Nov 23 '18 at 14:11
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%2f53447642%2frunning-predictive-model-according-to-values-in-column%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
There are a couple options. First would be to use dplyr's join function to just add your first dataframe (PM) to the second one (test) as a new column and then index based on that. Below is a solution with base R.
To get the correct function for a single row as your current PM is:
model[match(test_TN_number, PM[,2])]
If PM doesn't have the first column equal to row numbers, then:
model[PM[match(test_TN_number, PM[,2])],1]
This is then easily extended to the whole dataframe with apply or within a loop.
Edit: here's a for looped version:
for (test_TN_number in test[,"TN"]){
model[PM[match(test_TN_number, PM[,2])],1]
}
Thanks @Aaro Viertiö, Can you add the apply for the whole dataframe (or loop).
– Avi
Nov 23 '18 at 13:59
Added a looped version.
– Aaro Viertiö
Nov 23 '18 at 14:11
add a comment |
There are a couple options. First would be to use dplyr's join function to just add your first dataframe (PM) to the second one (test) as a new column and then index based on that. Below is a solution with base R.
To get the correct function for a single row as your current PM is:
model[match(test_TN_number, PM[,2])]
If PM doesn't have the first column equal to row numbers, then:
model[PM[match(test_TN_number, PM[,2])],1]
This is then easily extended to the whole dataframe with apply or within a loop.
Edit: here's a for looped version:
for (test_TN_number in test[,"TN"]){
model[PM[match(test_TN_number, PM[,2])],1]
}
Thanks @Aaro Viertiö, Can you add the apply for the whole dataframe (or loop).
– Avi
Nov 23 '18 at 13:59
Added a looped version.
– Aaro Viertiö
Nov 23 '18 at 14:11
add a comment |
There are a couple options. First would be to use dplyr's join function to just add your first dataframe (PM) to the second one (test) as a new column and then index based on that. Below is a solution with base R.
To get the correct function for a single row as your current PM is:
model[match(test_TN_number, PM[,2])]
If PM doesn't have the first column equal to row numbers, then:
model[PM[match(test_TN_number, PM[,2])],1]
This is then easily extended to the whole dataframe with apply or within a loop.
Edit: here's a for looped version:
for (test_TN_number in test[,"TN"]){
model[PM[match(test_TN_number, PM[,2])],1]
}
There are a couple options. First would be to use dplyr's join function to just add your first dataframe (PM) to the second one (test) as a new column and then index based on that. Below is a solution with base R.
To get the correct function for a single row as your current PM is:
model[match(test_TN_number, PM[,2])]
If PM doesn't have the first column equal to row numbers, then:
model[PM[match(test_TN_number, PM[,2])],1]
This is then easily extended to the whole dataframe with apply or within a loop.
Edit: here's a for looped version:
for (test_TN_number in test[,"TN"]){
model[PM[match(test_TN_number, PM[,2])],1]
}
edited Nov 23 '18 at 14:10
answered Nov 23 '18 at 13:46
Aaro ViertiöAaro Viertiö
1295
1295
Thanks @Aaro Viertiö, Can you add the apply for the whole dataframe (or loop).
– Avi
Nov 23 '18 at 13:59
Added a looped version.
– Aaro Viertiö
Nov 23 '18 at 14:11
add a comment |
Thanks @Aaro Viertiö, Can you add the apply for the whole dataframe (or loop).
– Avi
Nov 23 '18 at 13:59
Added a looped version.
– Aaro Viertiö
Nov 23 '18 at 14:11
Thanks @Aaro Viertiö, Can you add the apply for the whole dataframe (or loop).
– Avi
Nov 23 '18 at 13:59
Thanks @Aaro Viertiö, Can you add the apply for the whole dataframe (or loop).
– Avi
Nov 23 '18 at 13:59
Added a looped version.
– Aaro Viertiö
Nov 23 '18 at 14:11
Added a looped version.
– Aaro Viertiö
Nov 23 '18 at 14:11
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%2f53447642%2frunning-predictive-model-according-to-values-in-column%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
Hard to replicate your data like that.
– Bram
Nov 23 '18 at 13:46