Static variable next to a dynamic variable in R
I posted yesterday another question but I feel I need to clarify it.
Let's say I have this code
md.NAME <- (subset(MyData, HotelName=="ALAMEDA"))
md.NAME.fc <- (subset(md.ALAMEDA, TIPO=="FORECAST"))
md.NAME.fc.bar <- (subset(md.ALAMEDA.fc, Market.Segment=="BAR"))
What I want is that NAME changes according to a variable set before those 3 lines are run,
So NAME is just dynamic in the sense that before these 3 lines I could say, ok, NAME now is equal to JOHN, but then, I could say that NAME is now equal to PATRIC.
So after running those 3 lines, twice (once for John and once for Patric) somehow in the environment I will get something like this:
6 dataframes, 3 for JOHN and 3 for PATRIC
DATAFRAME 1 WILL BE md.JOHN
DATAFRAME 2 WILL BE md.JOHN.fc
DATAFRAME 3 WILL BE md.JOHN.fc.bar
DATAFRAME 1 WILL BE md.PATRIC
DATAFRAME 2 WILL BE md.PATRIC.fc
DATAFRAME 3 WILL BE md.PATRIC.fc.bar
All the answers I had so far would help me only if "md" and "fc" or "fc.bar" are always the same. But I will have several variables like this, which will change a lot as far as the naming goes. So, it is the center part (NAME) the only one that should change.
I could even have something like:
md.test$NAME <- ...
r dataframe variables dataset
add a comment |
I posted yesterday another question but I feel I need to clarify it.
Let's say I have this code
md.NAME <- (subset(MyData, HotelName=="ALAMEDA"))
md.NAME.fc <- (subset(md.ALAMEDA, TIPO=="FORECAST"))
md.NAME.fc.bar <- (subset(md.ALAMEDA.fc, Market.Segment=="BAR"))
What I want is that NAME changes according to a variable set before those 3 lines are run,
So NAME is just dynamic in the sense that before these 3 lines I could say, ok, NAME now is equal to JOHN, but then, I could say that NAME is now equal to PATRIC.
So after running those 3 lines, twice (once for John and once for Patric) somehow in the environment I will get something like this:
6 dataframes, 3 for JOHN and 3 for PATRIC
DATAFRAME 1 WILL BE md.JOHN
DATAFRAME 2 WILL BE md.JOHN.fc
DATAFRAME 3 WILL BE md.JOHN.fc.bar
DATAFRAME 1 WILL BE md.PATRIC
DATAFRAME 2 WILL BE md.PATRIC.fc
DATAFRAME 3 WILL BE md.PATRIC.fc.bar
All the answers I had so far would help me only if "md" and "fc" or "fc.bar" are always the same. But I will have several variables like this, which will change a lot as far as the naming goes. So, it is the center part (NAME) the only one that should change.
I could even have something like:
md.test$NAME <- ...
r dataframe variables dataset
1
Instead of creating objects in the global env, place it in alist
and then chang thename
of thelist
i.e.lst1 <- mget(ls(pattern = "^md.NAME"))
– akrun
Nov 12 '18 at 22:26
Theassign()
function could be helpful. Something likeassign(paste0("md.", NAME), value=subset(MyData, HotelName=="ALAMEDA"))
- To get more precise answers please provide a reproducible example.
– Florian
Nov 12 '18 at 22:57
1
Yesterday you were advised that this was a bad idea. It still is.
– user2554330
Nov 12 '18 at 23:40
1
Possible duplicate of One variable name combining a static name + a variable name
– user2554330
Nov 12 '18 at 23:41
add a comment |
I posted yesterday another question but I feel I need to clarify it.
Let's say I have this code
md.NAME <- (subset(MyData, HotelName=="ALAMEDA"))
md.NAME.fc <- (subset(md.ALAMEDA, TIPO=="FORECAST"))
md.NAME.fc.bar <- (subset(md.ALAMEDA.fc, Market.Segment=="BAR"))
What I want is that NAME changes according to a variable set before those 3 lines are run,
So NAME is just dynamic in the sense that before these 3 lines I could say, ok, NAME now is equal to JOHN, but then, I could say that NAME is now equal to PATRIC.
So after running those 3 lines, twice (once for John and once for Patric) somehow in the environment I will get something like this:
6 dataframes, 3 for JOHN and 3 for PATRIC
DATAFRAME 1 WILL BE md.JOHN
DATAFRAME 2 WILL BE md.JOHN.fc
DATAFRAME 3 WILL BE md.JOHN.fc.bar
DATAFRAME 1 WILL BE md.PATRIC
DATAFRAME 2 WILL BE md.PATRIC.fc
DATAFRAME 3 WILL BE md.PATRIC.fc.bar
All the answers I had so far would help me only if "md" and "fc" or "fc.bar" are always the same. But I will have several variables like this, which will change a lot as far as the naming goes. So, it is the center part (NAME) the only one that should change.
I could even have something like:
md.test$NAME <- ...
r dataframe variables dataset
I posted yesterday another question but I feel I need to clarify it.
Let's say I have this code
md.NAME <- (subset(MyData, HotelName=="ALAMEDA"))
md.NAME.fc <- (subset(md.ALAMEDA, TIPO=="FORECAST"))
md.NAME.fc.bar <- (subset(md.ALAMEDA.fc, Market.Segment=="BAR"))
What I want is that NAME changes according to a variable set before those 3 lines are run,
So NAME is just dynamic in the sense that before these 3 lines I could say, ok, NAME now is equal to JOHN, but then, I could say that NAME is now equal to PATRIC.
So after running those 3 lines, twice (once for John and once for Patric) somehow in the environment I will get something like this:
6 dataframes, 3 for JOHN and 3 for PATRIC
DATAFRAME 1 WILL BE md.JOHN
DATAFRAME 2 WILL BE md.JOHN.fc
DATAFRAME 3 WILL BE md.JOHN.fc.bar
DATAFRAME 1 WILL BE md.PATRIC
DATAFRAME 2 WILL BE md.PATRIC.fc
DATAFRAME 3 WILL BE md.PATRIC.fc.bar
All the answers I had so far would help me only if "md" and "fc" or "fc.bar" are always the same. But I will have several variables like this, which will change a lot as far as the naming goes. So, it is the center part (NAME) the only one that should change.
I could even have something like:
md.test$NAME <- ...
r dataframe variables dataset
r dataframe variables dataset
edited Nov 13 '18 at 21:05
asked Nov 12 '18 at 22:24
Facundo Calbo Leyes
62
62
1
Instead of creating objects in the global env, place it in alist
and then chang thename
of thelist
i.e.lst1 <- mget(ls(pattern = "^md.NAME"))
– akrun
Nov 12 '18 at 22:26
Theassign()
function could be helpful. Something likeassign(paste0("md.", NAME), value=subset(MyData, HotelName=="ALAMEDA"))
- To get more precise answers please provide a reproducible example.
– Florian
Nov 12 '18 at 22:57
1
Yesterday you were advised that this was a bad idea. It still is.
– user2554330
Nov 12 '18 at 23:40
1
Possible duplicate of One variable name combining a static name + a variable name
– user2554330
Nov 12 '18 at 23:41
add a comment |
1
Instead of creating objects in the global env, place it in alist
and then chang thename
of thelist
i.e.lst1 <- mget(ls(pattern = "^md.NAME"))
– akrun
Nov 12 '18 at 22:26
Theassign()
function could be helpful. Something likeassign(paste0("md.", NAME), value=subset(MyData, HotelName=="ALAMEDA"))
- To get more precise answers please provide a reproducible example.
– Florian
Nov 12 '18 at 22:57
1
Yesterday you were advised that this was a bad idea. It still is.
– user2554330
Nov 12 '18 at 23:40
1
Possible duplicate of One variable name combining a static name + a variable name
– user2554330
Nov 12 '18 at 23:41
1
1
Instead of creating objects in the global env, place it in a
list
and then chang the name
of the list
i.e. lst1 <- mget(ls(pattern = "^md.NAME"))
– akrun
Nov 12 '18 at 22:26
Instead of creating objects in the global env, place it in a
list
and then chang the name
of the list
i.e. lst1 <- mget(ls(pattern = "^md.NAME"))
– akrun
Nov 12 '18 at 22:26
The
assign()
function could be helpful. Something like assign(paste0("md.", NAME), value=subset(MyData, HotelName=="ALAMEDA"))
- To get more precise answers please provide a reproducible example.– Florian
Nov 12 '18 at 22:57
The
assign()
function could be helpful. Something like assign(paste0("md.", NAME), value=subset(MyData, HotelName=="ALAMEDA"))
- To get more precise answers please provide a reproducible example.– Florian
Nov 12 '18 at 22:57
1
1
Yesterday you were advised that this was a bad idea. It still is.
– user2554330
Nov 12 '18 at 23:40
Yesterday you were advised that this was a bad idea. It still is.
– user2554330
Nov 12 '18 at 23:40
1
1
Possible duplicate of One variable name combining a static name + a variable name
– user2554330
Nov 12 '18 at 23:41
Possible duplicate of One variable name combining a static name + a variable name
– user2554330
Nov 12 '18 at 23:41
add a comment |
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%2f53270982%2fstatic-variable-next-to-a-dynamic-variable-in-r%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%2f53270982%2fstatic-variable-next-to-a-dynamic-variable-in-r%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
Instead of creating objects in the global env, place it in a
list
and then chang thename
of thelist
i.e.lst1 <- mget(ls(pattern = "^md.NAME"))
– akrun
Nov 12 '18 at 22:26
The
assign()
function could be helpful. Something likeassign(paste0("md.", NAME), value=subset(MyData, HotelName=="ALAMEDA"))
- To get more precise answers please provide a reproducible example.– Florian
Nov 12 '18 at 22:57
1
Yesterday you were advised that this was a bad idea. It still is.
– user2554330
Nov 12 '18 at 23:40
1
Possible duplicate of One variable name combining a static name + a variable name
– user2554330
Nov 12 '18 at 23:41