Jeff, mutate(), which is I think part of dplyr, also violates this, for what it's worth. I suspect the breaking point is that mutate() is intended to create new columns in the dataframe, not alter existing ones. On Sat, Jul 25, 2020 at 3:52 PM Jeff Newmiller <jdnewmil at dcn.davis.ca.us> wrote:> R is largely a functional language. You do something to an input and end > up with an output that has no effect on the input. This is actually a > highly desirable feature. > > If you want your df variable to reflect changes made then you need to > assign your result back into it. > > df <- df %>% mutate(v1 = as.double(v1)) > > (Note that the data.table package violates this principle and is > controversial as a result.) > > On July 25, 2020 12:11:24 PM PDT, H <agents at meddatainc.com> wrote: > >In a statement like: > > > >df %>% mutate(v1 = as.double(v1)) > > > >I expect the variable v1 in dataframe df to have been converted into a > >double. However, when I do: > > > >str(df) > > > >v1 still shows as int. Do I need to save the modified dataframe after > >mutating a variable? > > > >______________________________________________ > >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >https://stat.ethz.ch/mailman/listinfo/r-help > >PLEASE do read the posting guide > >http://www.R-project.org/posting-guide.html > >and provide commented, minimal, self-contained, reproducible code. > > -- > Sent from my phone. Please excuse my brevity. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Patrick S. Malone, Ph.D., Malone Quantitative NEW Service Models: http://malonequantitative.com He/Him/His [[alternative HTML version deleted]]
False. Mutate is similar in structure to the base function `within`. Which is why you have to assign the altered data frame back onto itself. On July 25, 2020 12:59:06 PM PDT, "Patrick (Malone Quantitative)" <malone at malonequantitative.com> wrote:>Jeff, > >mutate(), which is I think part of dplyr, also violates this, for what >it's >worth. I suspect the breaking point is that mutate() is intended to >create >new columns in the dataframe, not alter existing ones. > >On Sat, Jul 25, 2020 at 3:52 PM Jeff Newmiller ><jdnewmil at dcn.davis.ca.us> >wrote: > >> R is largely a functional language. You do something to an input and >end >> up with an output that has no effect on the input. This is actually a >> highly desirable feature. >> >> If you want your df variable to reflect changes made then you need >to >> assign your result back into it. >> >> df <- df %>% mutate(v1 = as.double(v1)) >> >> (Note that the data.table package violates this principle and is >> controversial as a result.) >> >> On July 25, 2020 12:11:24 PM PDT, H <agents at meddatainc.com> wrote: >> >In a statement like: >> > >> >df %>% mutate(v1 = as.double(v1)) >> > >> >I expect the variable v1 in dataframe df to have been converted into >a >> >double. However, when I do: >> > >> >str(df) >> > >> >v1 still shows as int. Do I need to save the modified dataframe >after >> >mutating a variable? >> > >> >______________________________________________ >> >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> >https://stat.ethz.ch/mailman/listinfo/r-help >> >PLEASE do read the posting guide >> >http://www.R-project.org/posting-guide.html >> >and provide commented, minimal, self-contained, reproducible code. >> >> -- >> Sent from my phone. Please excuse my brevity. >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >>-- Sent from my phone. Please excuse my brevity.
Oh, right--I puzzled out my mistake. On Sat, Jul 25, 2020 at 4:17 PM Jeff Newmiller <jdnewmil at dcn.davis.ca.us> wrote:> False. Mutate is similar in structure to the base function `within`. Which > is why you have to assign the altered data frame back onto itself. > > On July 25, 2020 12:59:06 PM PDT, "Patrick (Malone Quantitative)" < > malone at malonequantitative.com> wrote: > >Jeff, > > > >mutate(), which is I think part of dplyr, also violates this, for what > >it's > >worth. I suspect the breaking point is that mutate() is intended to > >create > >new columns in the dataframe, not alter existing ones. > > > >On Sat, Jul 25, 2020 at 3:52 PM Jeff Newmiller > ><jdnewmil at dcn.davis.ca.us> > >wrote: > > > >> R is largely a functional language. You do something to an input and > >end > >> up with an output that has no effect on the input. This is actually a > >> highly desirable feature. > >> > >> If you want your df variable to reflect changes made then you need > >to > >> assign your result back into it. > >> > >> df <- df %>% mutate(v1 = as.double(v1)) > >> > >> (Note that the data.table package violates this principle and is > >> controversial as a result.) > >> > >> On July 25, 2020 12:11:24 PM PDT, H <agents at meddatainc.com> wrote: > >> >In a statement like: > >> > > >> >df %>% mutate(v1 = as.double(v1)) > >> > > >> >I expect the variable v1 in dataframe df to have been converted into > >a > >> >double. However, when I do: > >> > > >> >str(df) > >> > > >> >v1 still shows as int. Do I need to save the modified dataframe > >after > >> >mutating a variable? > >> > > >> >______________________________________________ > >> >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> >https://stat.ethz.ch/mailman/listinfo/r-help > >> >PLEASE do read the posting guide > >> >http://www.R-project.org/posting-guide.html > >> >and provide commented, minimal, self-contained, reproducible code. > >> > >> -- > >> Sent from my phone. Please excuse my brevity. > >> > >> ______________________________________________ > >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> https://stat.ethz.ch/mailman/listinfo/r-help > >> PLEASE do read the posting guide > >> http://www.R-project.org/posting-guide.html > >> and provide commented, minimal, self-contained, reproducible code. > >> > > -- > Sent from my phone. Please excuse my brevity. >-- Patrick S. Malone, Ph.D., Malone Quantitative NEW Service Models: http://malonequantitative.com He/Him/His [[alternative HTML version deleted]]
On 07/25/2020 04:17 PM, Jeff Newmiller wrote:> False. Mutate is similar in structure to the base function `within`. Which is why you have to assign the altered data frame back onto itself. > > On July 25, 2020 12:59:06 PM PDT, "Patrick (Malone Quantitative)" <malone at malonequantitative.com> wrote: >> Jeff, >> >> mutate(), which is I think part of dplyr, also violates this, for what >> it's >> worth. I suspect the breaking point is that mutate() is intended to >> create >> new columns in the dataframe, not alter existing ones. >> >> On Sat, Jul 25, 2020 at 3:52 PM Jeff Newmiller >> <jdnewmil at dcn.davis.ca.us> >> wrote: >> >>> R is largely a functional language. You do something to an input and >> end >>> up with an output that has no effect on the input. This is actually a >>> highly desirable feature. >>> >>> If you want your df variable to reflect changes made then you need >> to >>> assign your result back into it. >>> >>> df <- df %>% mutate(v1 = as.double(v1)) >>> >>> (Note that the data.table package violates this principle and is >>> controversial as a result.) >>> >>> On July 25, 2020 12:11:24 PM PDT, H <agents at meddatainc.com> wrote: >>>> In a statement like: >>>> >>>> df %>% mutate(v1 = as.double(v1)) >>>> >>>> I expect the variable v1 in dataframe df to have been converted into >> a >>>> double. However, when I do: >>>> >>>> str(df) >>>> >>>> v1 still shows as int. Do I need to save the modified dataframe >> after >>>> mutating a variable? >>>> >>>> ______________________________________________ >>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide >>>> http://www.R-project.org/posting-guide.html >>>> and provide commented, minimal, self-contained, reproducible code. >>> -- >>> Sent from my phone. Please excuse my brevity. >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide >>> http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>>Thank you, code corrected and problem solved. I was thrown off by the fact that after mutating it looked like the column data type had been changed. I also tried mutate_at() which similarly failed...