How to combine two subsets of dates into one column?
I have one of these date issues.
In a data frame dfr
I have two date columns due to merging, only the date with the correct year is valid and I want it in an extra column.
> head(dfr, 4)
id year some.vars date17 date18
1 101 2017 8 2017-11-21 2018-11-21
2 101 2018 0 2017-11-21 2018-11-21
3 102 2017 2 2017-11-23 2018-11-23
4 102 2018 9 2017-11-23 2018-11-23
So as usual I do this
dfr$date <- 0
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
but it gives me a date column in decimal form,
> head(dfr, 4)
id year some.vars date17 date18 date
1 101 2017 8 2017-11-21 2018-11-21 1511218800
2 101 2018 0 2017-11-21 2018-11-21 1542754800
3 102 2017 2 2017-11-23 2018-11-23 1511391600
4 102 2018 9 2017-11-23 2018-11-23 1542927600
which I probably have to format again with as.POSIXct()
by specifying an origin
or strftime
etc. but I would consider this as a workaround. (Besides dfr$date <- with(dfr, ifelse(year == 2017, date17, date18))
yields exactly the same.)
But what I want is this
> head(dfr, 4)
id year some.vars date17 date18 date
1 101 2017 7 2017-11-21 2018-11-21 2017-11-21
2 101 2018 0 2017-11-21 2018-11-21 2018-11-21
3 102 2017 3 2017-11-23 2018-11-23 2017-11-23
4 102 2018 5 2017-11-23 2018-11-23 2018-11-23
When I look at the subsets,
d1 <- dfr$date17[dfr$year == 2017]
d2 <- dfr$date18[dfr$year == 2018]
> sapply(list(d1, d2), class)
[,1] [,2]
[1,] "POSIXct" "POSIXct"
[2,] "POSIXt" "POSIXt"
there's nothing wrong with it. As the LHS is similar, I assume there is an <-
assigning issue going on.
I also tried dfr[which(dfr["year"] == 2017), "date"] <- dfr[which(dfr["year"] == 2017), "date17"]
to avoid the $
sign (I interpreted some points in this answer like so) but the approach still doesn't lead to success.
So how in base R can we combine two subsets of dates into one column of a data frame?
Data
> dput(dfr)
structure(list(id = c(101L, 101L, 102L, 102L, 103L, 103L, 104L,
104L, 105L, 105L), year = c(2017L, 2018L, 2017L, 2018L, 2017L,
2018L, 2017L, 2018L, 2017L, 2018L), some.vars = c(8L, 0L, 2L,
9L, 6L, 3L, 4L, 0L, 9L, 4L), date17 = structure(c(1511218800,
1511218800, 1511391600, 1511391600, 1511650800, 1511650800, 1511910000,
1511910000, 1512169200, 1512169200), class = c("POSIXct", "POSIXt"
), tzone = ""), date18 = structure(c(1542754800, 1542754800,
1542927600, 1542927600, 1543186800, 1543186800, 1543446000, 1543446000,
1543705200, 1543705200), class = c("POSIXct", "POSIXt"), tzone = "")), class = "data.frame", row.names = c(NA,
-10L))
> str(dfr)
'data.frame': 10 obs. of 5 variables:
$ id : int 101 101 102 102 103 103 104 104 105 105
$ year : int 2017 2018 2017 2018 2017 2018 2017 2018 2017 2018
$ some.vars: int 1 2 8 6 2 0 1 2 4 1
$ date17 : POSIXct, format: "2017-11-21" "2017-11-21" "2017-11-23" "2017-11-23" ...
$ date18 : POSIXct, format: "2018-11-21" "2018-11-21" "2018-11-23" "2018-11-23" ...
r
add a comment |
I have one of these date issues.
In a data frame dfr
I have two date columns due to merging, only the date with the correct year is valid and I want it in an extra column.
> head(dfr, 4)
id year some.vars date17 date18
1 101 2017 8 2017-11-21 2018-11-21
2 101 2018 0 2017-11-21 2018-11-21
3 102 2017 2 2017-11-23 2018-11-23
4 102 2018 9 2017-11-23 2018-11-23
So as usual I do this
dfr$date <- 0
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
but it gives me a date column in decimal form,
> head(dfr, 4)
id year some.vars date17 date18 date
1 101 2017 8 2017-11-21 2018-11-21 1511218800
2 101 2018 0 2017-11-21 2018-11-21 1542754800
3 102 2017 2 2017-11-23 2018-11-23 1511391600
4 102 2018 9 2017-11-23 2018-11-23 1542927600
which I probably have to format again with as.POSIXct()
by specifying an origin
or strftime
etc. but I would consider this as a workaround. (Besides dfr$date <- with(dfr, ifelse(year == 2017, date17, date18))
yields exactly the same.)
But what I want is this
> head(dfr, 4)
id year some.vars date17 date18 date
1 101 2017 7 2017-11-21 2018-11-21 2017-11-21
2 101 2018 0 2017-11-21 2018-11-21 2018-11-21
3 102 2017 3 2017-11-23 2018-11-23 2017-11-23
4 102 2018 5 2017-11-23 2018-11-23 2018-11-23
When I look at the subsets,
d1 <- dfr$date17[dfr$year == 2017]
d2 <- dfr$date18[dfr$year == 2018]
> sapply(list(d1, d2), class)
[,1] [,2]
[1,] "POSIXct" "POSIXct"
[2,] "POSIXt" "POSIXt"
there's nothing wrong with it. As the LHS is similar, I assume there is an <-
assigning issue going on.
I also tried dfr[which(dfr["year"] == 2017), "date"] <- dfr[which(dfr["year"] == 2017), "date17"]
to avoid the $
sign (I interpreted some points in this answer like so) but the approach still doesn't lead to success.
So how in base R can we combine two subsets of dates into one column of a data frame?
Data
> dput(dfr)
structure(list(id = c(101L, 101L, 102L, 102L, 103L, 103L, 104L,
104L, 105L, 105L), year = c(2017L, 2018L, 2017L, 2018L, 2017L,
2018L, 2017L, 2018L, 2017L, 2018L), some.vars = c(8L, 0L, 2L,
9L, 6L, 3L, 4L, 0L, 9L, 4L), date17 = structure(c(1511218800,
1511218800, 1511391600, 1511391600, 1511650800, 1511650800, 1511910000,
1511910000, 1512169200, 1512169200), class = c("POSIXct", "POSIXt"
), tzone = ""), date18 = structure(c(1542754800, 1542754800,
1542927600, 1542927600, 1543186800, 1543186800, 1543446000, 1543446000,
1543705200, 1543705200), class = c("POSIXct", "POSIXt"), tzone = "")), class = "data.frame", row.names = c(NA,
-10L))
> str(dfr)
'data.frame': 10 obs. of 5 variables:
$ id : int 101 101 102 102 103 103 104 104 105 105
$ year : int 2017 2018 2017 2018 2017 2018 2017 2018 2017 2018
$ some.vars: int 1 2 8 6 2 0 1 2 4 1
$ date17 : POSIXct, format: "2017-11-21" "2017-11-21" "2017-11-23" "2017-11-23" ...
$ date18 : POSIXct, format: "2018-11-21" "2018-11-21" "2018-11-23" "2018-11-23" ...
r
add a comment |
I have one of these date issues.
In a data frame dfr
I have two date columns due to merging, only the date with the correct year is valid and I want it in an extra column.
> head(dfr, 4)
id year some.vars date17 date18
1 101 2017 8 2017-11-21 2018-11-21
2 101 2018 0 2017-11-21 2018-11-21
3 102 2017 2 2017-11-23 2018-11-23
4 102 2018 9 2017-11-23 2018-11-23
So as usual I do this
dfr$date <- 0
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
but it gives me a date column in decimal form,
> head(dfr, 4)
id year some.vars date17 date18 date
1 101 2017 8 2017-11-21 2018-11-21 1511218800
2 101 2018 0 2017-11-21 2018-11-21 1542754800
3 102 2017 2 2017-11-23 2018-11-23 1511391600
4 102 2018 9 2017-11-23 2018-11-23 1542927600
which I probably have to format again with as.POSIXct()
by specifying an origin
or strftime
etc. but I would consider this as a workaround. (Besides dfr$date <- with(dfr, ifelse(year == 2017, date17, date18))
yields exactly the same.)
But what I want is this
> head(dfr, 4)
id year some.vars date17 date18 date
1 101 2017 7 2017-11-21 2018-11-21 2017-11-21
2 101 2018 0 2017-11-21 2018-11-21 2018-11-21
3 102 2017 3 2017-11-23 2018-11-23 2017-11-23
4 102 2018 5 2017-11-23 2018-11-23 2018-11-23
When I look at the subsets,
d1 <- dfr$date17[dfr$year == 2017]
d2 <- dfr$date18[dfr$year == 2018]
> sapply(list(d1, d2), class)
[,1] [,2]
[1,] "POSIXct" "POSIXct"
[2,] "POSIXt" "POSIXt"
there's nothing wrong with it. As the LHS is similar, I assume there is an <-
assigning issue going on.
I also tried dfr[which(dfr["year"] == 2017), "date"] <- dfr[which(dfr["year"] == 2017), "date17"]
to avoid the $
sign (I interpreted some points in this answer like so) but the approach still doesn't lead to success.
So how in base R can we combine two subsets of dates into one column of a data frame?
Data
> dput(dfr)
structure(list(id = c(101L, 101L, 102L, 102L, 103L, 103L, 104L,
104L, 105L, 105L), year = c(2017L, 2018L, 2017L, 2018L, 2017L,
2018L, 2017L, 2018L, 2017L, 2018L), some.vars = c(8L, 0L, 2L,
9L, 6L, 3L, 4L, 0L, 9L, 4L), date17 = structure(c(1511218800,
1511218800, 1511391600, 1511391600, 1511650800, 1511650800, 1511910000,
1511910000, 1512169200, 1512169200), class = c("POSIXct", "POSIXt"
), tzone = ""), date18 = structure(c(1542754800, 1542754800,
1542927600, 1542927600, 1543186800, 1543186800, 1543446000, 1543446000,
1543705200, 1543705200), class = c("POSIXct", "POSIXt"), tzone = "")), class = "data.frame", row.names = c(NA,
-10L))
> str(dfr)
'data.frame': 10 obs. of 5 variables:
$ id : int 101 101 102 102 103 103 104 104 105 105
$ year : int 2017 2018 2017 2018 2017 2018 2017 2018 2017 2018
$ some.vars: int 1 2 8 6 2 0 1 2 4 1
$ date17 : POSIXct, format: "2017-11-21" "2017-11-21" "2017-11-23" "2017-11-23" ...
$ date18 : POSIXct, format: "2018-11-21" "2018-11-21" "2018-11-23" "2018-11-23" ...
r
I have one of these date issues.
In a data frame dfr
I have two date columns due to merging, only the date with the correct year is valid and I want it in an extra column.
> head(dfr, 4)
id year some.vars date17 date18
1 101 2017 8 2017-11-21 2018-11-21
2 101 2018 0 2017-11-21 2018-11-21
3 102 2017 2 2017-11-23 2018-11-23
4 102 2018 9 2017-11-23 2018-11-23
So as usual I do this
dfr$date <- 0
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
but it gives me a date column in decimal form,
> head(dfr, 4)
id year some.vars date17 date18 date
1 101 2017 8 2017-11-21 2018-11-21 1511218800
2 101 2018 0 2017-11-21 2018-11-21 1542754800
3 102 2017 2 2017-11-23 2018-11-23 1511391600
4 102 2018 9 2017-11-23 2018-11-23 1542927600
which I probably have to format again with as.POSIXct()
by specifying an origin
or strftime
etc. but I would consider this as a workaround. (Besides dfr$date <- with(dfr, ifelse(year == 2017, date17, date18))
yields exactly the same.)
But what I want is this
> head(dfr, 4)
id year some.vars date17 date18 date
1 101 2017 7 2017-11-21 2018-11-21 2017-11-21
2 101 2018 0 2017-11-21 2018-11-21 2018-11-21
3 102 2017 3 2017-11-23 2018-11-23 2017-11-23
4 102 2018 5 2017-11-23 2018-11-23 2018-11-23
When I look at the subsets,
d1 <- dfr$date17[dfr$year == 2017]
d2 <- dfr$date18[dfr$year == 2018]
> sapply(list(d1, d2), class)
[,1] [,2]
[1,] "POSIXct" "POSIXct"
[2,] "POSIXt" "POSIXt"
there's nothing wrong with it. As the LHS is similar, I assume there is an <-
assigning issue going on.
I also tried dfr[which(dfr["year"] == 2017), "date"] <- dfr[which(dfr["year"] == 2017), "date17"]
to avoid the $
sign (I interpreted some points in this answer like so) but the approach still doesn't lead to success.
So how in base R can we combine two subsets of dates into one column of a data frame?
Data
> dput(dfr)
structure(list(id = c(101L, 101L, 102L, 102L, 103L, 103L, 104L,
104L, 105L, 105L), year = c(2017L, 2018L, 2017L, 2018L, 2017L,
2018L, 2017L, 2018L, 2017L, 2018L), some.vars = c(8L, 0L, 2L,
9L, 6L, 3L, 4L, 0L, 9L, 4L), date17 = structure(c(1511218800,
1511218800, 1511391600, 1511391600, 1511650800, 1511650800, 1511910000,
1511910000, 1512169200, 1512169200), class = c("POSIXct", "POSIXt"
), tzone = ""), date18 = structure(c(1542754800, 1542754800,
1542927600, 1542927600, 1543186800, 1543186800, 1543446000, 1543446000,
1543705200, 1543705200), class = c("POSIXct", "POSIXt"), tzone = "")), class = "data.frame", row.names = c(NA,
-10L))
> str(dfr)
'data.frame': 10 obs. of 5 variables:
$ id : int 101 101 102 102 103 103 104 104 105 105
$ year : int 2017 2018 2017 2018 2017 2018 2017 2018 2017 2018
$ some.vars: int 1 2 8 6 2 0 1 2 4 1
$ date17 : POSIXct, format: "2017-11-21" "2017-11-21" "2017-11-23" "2017-11-23" ...
$ date18 : POSIXct, format: "2018-11-21" "2018-11-21" "2018-11-23" "2018-11-23" ...
r
r
edited Nov 21 '18 at 16:12
jay.sf
asked Nov 21 '18 at 16:04
jay.sfjay.sf
4,53621439
4,53621439
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Two quick solutions, both in terms of how you create the date
column.
One:
dfr$date <- 0
class(dfr$date) <- "Date"
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
Second:
dfr$date <- dfr$date17
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
So, as both solutions suggest, the problem was with the class of the new column.
Lastly, when dealing with a case of similar size, one may exploit the order of columns simply as in
dfr$date <- dfr[cbind(1:nrow(dfr), dfr$year - 2013)]
Ah ok, I understand. But with anifelse()
or more shortly it won't work, does it? E.g.dfr$date <- 'class<-'(with(dfr, ifelse(year == 2017, date17, date18)), "Date")
fails.
– jay.sf
Nov 21 '18 at 16:31
Your example is interesting, evenifelse(dfr$year == 2017, dfr$date17, dfr$date18)
fails.?ifelse
discusses classes of returned objects.
– Julius Vainora
Nov 21 '18 at 16:36
Yourcbind()
trick is very clever. I probably have some cases that overlap into the next year, though.
– jay.sf
Nov 21 '18 at 16:38
add a comment |
When you create the date column, you are creating a numeric column:
dfr$date <- 0
Then when you assign subsequent date data, it gets coerced into numeric format.
Instead, create the date column from one or the other existing date columns, then it has the same type right off the start.
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%2f53416053%2fhow-to-combine-two-subsets-of-dates-into-one-column%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Two quick solutions, both in terms of how you create the date
column.
One:
dfr$date <- 0
class(dfr$date) <- "Date"
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
Second:
dfr$date <- dfr$date17
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
So, as both solutions suggest, the problem was with the class of the new column.
Lastly, when dealing with a case of similar size, one may exploit the order of columns simply as in
dfr$date <- dfr[cbind(1:nrow(dfr), dfr$year - 2013)]
Ah ok, I understand. But with anifelse()
or more shortly it won't work, does it? E.g.dfr$date <- 'class<-'(with(dfr, ifelse(year == 2017, date17, date18)), "Date")
fails.
– jay.sf
Nov 21 '18 at 16:31
Your example is interesting, evenifelse(dfr$year == 2017, dfr$date17, dfr$date18)
fails.?ifelse
discusses classes of returned objects.
– Julius Vainora
Nov 21 '18 at 16:36
Yourcbind()
trick is very clever. I probably have some cases that overlap into the next year, though.
– jay.sf
Nov 21 '18 at 16:38
add a comment |
Two quick solutions, both in terms of how you create the date
column.
One:
dfr$date <- 0
class(dfr$date) <- "Date"
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
Second:
dfr$date <- dfr$date17
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
So, as both solutions suggest, the problem was with the class of the new column.
Lastly, when dealing with a case of similar size, one may exploit the order of columns simply as in
dfr$date <- dfr[cbind(1:nrow(dfr), dfr$year - 2013)]
Ah ok, I understand. But with anifelse()
or more shortly it won't work, does it? E.g.dfr$date <- 'class<-'(with(dfr, ifelse(year == 2017, date17, date18)), "Date")
fails.
– jay.sf
Nov 21 '18 at 16:31
Your example is interesting, evenifelse(dfr$year == 2017, dfr$date17, dfr$date18)
fails.?ifelse
discusses classes of returned objects.
– Julius Vainora
Nov 21 '18 at 16:36
Yourcbind()
trick is very clever. I probably have some cases that overlap into the next year, though.
– jay.sf
Nov 21 '18 at 16:38
add a comment |
Two quick solutions, both in terms of how you create the date
column.
One:
dfr$date <- 0
class(dfr$date) <- "Date"
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
Second:
dfr$date <- dfr$date17
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
So, as both solutions suggest, the problem was with the class of the new column.
Lastly, when dealing with a case of similar size, one may exploit the order of columns simply as in
dfr$date <- dfr[cbind(1:nrow(dfr), dfr$year - 2013)]
Two quick solutions, both in terms of how you create the date
column.
One:
dfr$date <- 0
class(dfr$date) <- "Date"
dfr$date[dfr$year == 2017] <- dfr$date17[dfr$year == 2017]
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
Second:
dfr$date <- dfr$date17
dfr$date[dfr$year == 2018] <- dfr$date18[dfr$year == 2018]
So, as both solutions suggest, the problem was with the class of the new column.
Lastly, when dealing with a case of similar size, one may exploit the order of columns simply as in
dfr$date <- dfr[cbind(1:nrow(dfr), dfr$year - 2013)]
edited Nov 21 '18 at 16:31
answered Nov 21 '18 at 16:21
Julius VainoraJulius Vainora
33.5k75979
33.5k75979
Ah ok, I understand. But with anifelse()
or more shortly it won't work, does it? E.g.dfr$date <- 'class<-'(with(dfr, ifelse(year == 2017, date17, date18)), "Date")
fails.
– jay.sf
Nov 21 '18 at 16:31
Your example is interesting, evenifelse(dfr$year == 2017, dfr$date17, dfr$date18)
fails.?ifelse
discusses classes of returned objects.
– Julius Vainora
Nov 21 '18 at 16:36
Yourcbind()
trick is very clever. I probably have some cases that overlap into the next year, though.
– jay.sf
Nov 21 '18 at 16:38
add a comment |
Ah ok, I understand. But with anifelse()
or more shortly it won't work, does it? E.g.dfr$date <- 'class<-'(with(dfr, ifelse(year == 2017, date17, date18)), "Date")
fails.
– jay.sf
Nov 21 '18 at 16:31
Your example is interesting, evenifelse(dfr$year == 2017, dfr$date17, dfr$date18)
fails.?ifelse
discusses classes of returned objects.
– Julius Vainora
Nov 21 '18 at 16:36
Yourcbind()
trick is very clever. I probably have some cases that overlap into the next year, though.
– jay.sf
Nov 21 '18 at 16:38
Ah ok, I understand. But with an
ifelse()
or more shortly it won't work, does it? E.g. dfr$date <- 'class<-'(with(dfr, ifelse(year == 2017, date17, date18)), "Date")
fails.– jay.sf
Nov 21 '18 at 16:31
Ah ok, I understand. But with an
ifelse()
or more shortly it won't work, does it? E.g. dfr$date <- 'class<-'(with(dfr, ifelse(year == 2017, date17, date18)), "Date")
fails.– jay.sf
Nov 21 '18 at 16:31
Your example is interesting, even
ifelse(dfr$year == 2017, dfr$date17, dfr$date18)
fails. ?ifelse
discusses classes of returned objects.– Julius Vainora
Nov 21 '18 at 16:36
Your example is interesting, even
ifelse(dfr$year == 2017, dfr$date17, dfr$date18)
fails. ?ifelse
discusses classes of returned objects.– Julius Vainora
Nov 21 '18 at 16:36
Your
cbind()
trick is very clever. I probably have some cases that overlap into the next year, though.– jay.sf
Nov 21 '18 at 16:38
Your
cbind()
trick is very clever. I probably have some cases that overlap into the next year, though.– jay.sf
Nov 21 '18 at 16:38
add a comment |
When you create the date column, you are creating a numeric column:
dfr$date <- 0
Then when you assign subsequent date data, it gets coerced into numeric format.
Instead, create the date column from one or the other existing date columns, then it has the same type right off the start.
add a comment |
When you create the date column, you are creating a numeric column:
dfr$date <- 0
Then when you assign subsequent date data, it gets coerced into numeric format.
Instead, create the date column from one or the other existing date columns, then it has the same type right off the start.
add a comment |
When you create the date column, you are creating a numeric column:
dfr$date <- 0
Then when you assign subsequent date data, it gets coerced into numeric format.
Instead, create the date column from one or the other existing date columns, then it has the same type right off the start.
When you create the date column, you are creating a numeric column:
dfr$date <- 0
Then when you assign subsequent date data, it gets coerced into numeric format.
Instead, create the date column from one or the other existing date columns, then it has the same type right off the start.
answered Nov 21 '18 at 16:24
alex_danielssenalex_danielssen
1096
1096
add a comment |
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%2f53416053%2fhow-to-combine-two-subsets-of-dates-into-one-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