[Rd] New R version - Issue with as.vector coercion on data.frame

Bill Dunlap w||||@mwdun|@p @end|ng |rom gm@||@com
Mon May 2 17:07:41 CEST 2022


In R-4.1.2 (and before) as.vector(aDataFrame) returned aDataFrame,
unchanged.  E.g.,
  4.1.2> aDataFrame <- data.frame(X=101:103, Y=201:203, Z=301:303)
  4.1.2> attr(aDataFrame, "anAttr") <- "an attribute"
  4.1.2> identical(as.vector(aDataFrame), aDataFrame)
  [1] TRUE
  4.1.2> dput(aDataFrame)
  structure(list(X = 101:103, Y = 201:203, Z = 301:303), class =
"data.frame", row.names = c(NA, -3L), anAttr = "an attribute")

In R-4.2.0 it removes the class, names, and row.names attributes, but
leaves other stray attributes alone.  E.g.,
  4.2.0> aDataFrame <- data.frame(X=101:103, Y=201:203, Z=301:303)
  4.2.0> attr(aDataFrame, "anAttr") <- "an attribute"
  4.2.0> identical(as.vector(aDataFrame), aDataFrame)
  [1] FALSE
  4.2.0> dput(aDataFrame)
  structure(list(X = 101:103, Y = 201:203, Z = 301:303), class =
"data.frame", row.names = c(NA, -3L), anAttr = "an attribute")
  4.2.0> dput(as.vector(aDataFrame))
  structure(list(X = 101:103, Y = 201:203, Z = 301:303), anAttr = "an
attribute")

In both versions as.list(aDataFrame) returns the same thing that R-4.1.2's
as.vector(aDataFrame) did.

I think that as.vector() is a function that few people should use.   It has
almost nothing to do with with the notion of a vector in math or physics.

-Bill

On Mon, May 2, 2022 at 2:19 AM Marc Weibel <marc.weibel using eniso-partners.com>
wrote:

> Hi
>
> I recently upgraded to the latest r version and got an issue with the
> command as.vector() on a data.frame object. With the previous R version the
> returned object was a vector but now it is formatted as a list (see below)
>
>
> > futures_quotes
>   SMI Future SMIM Future Euro Stoxx 50 Future S&P 500 Mini Future FTSE 100
> Future Nikkei 225 Future
> 1      11999        2871                 3692                4150
>   7419             26853
> > class(futures_quotes)
> [1] "data.frame"
>
> > as.vector(futures_quotes[1,1:3])
> $`SMI Future`
> [1] 11999
>
> $`SMIM Future`
> [1] 2871
>
> $`Euro Stoxx 50 Future`
> [1] 3692
>
> > class(as.vector(futures_quotes[1,1:3]))
> [1] "list"
>
>
> Can you help me on this ? (I solved the issue temporarily with
> as.vector(t(futures_quotes[1,1:3]))
>
> Kind regards
> Marc Weibel
>
>
>
>  <http://www.enisopartners.com/>
> Dr. Marc Weibel
> CIO & Partner
> Tel: +41 44 286 17 02
> Mob: +41 78 892 96 55
> E-Mail: marc.weibel using enisopartners.com <mailto:
> marc.weibel using enisopartners.com>
>
> Eniso Partners AG
> Claridenstrasse 34 | Postfach | 8022 Zürich
>
>  <https://www.linkedin.com/in/marc-weibel-29a396/>
> Based on previous e-mail correspondence with you and/or an agreement
> reached with you, Eniso Partners considers itself authorized to contact you
> via unsecured e-mail. Warning: E-mails can involve SUBSTANTIAL RISKS, e.g.
> lack of confidentiality, potential manipulation of contents and/or sender's
> address, incorrect recipient (misdirection), viruses etc. Eniso Partners
> assumes no responsibility for any loss or damage resulting from the use of
> e-mails. Eniso Partners recommends in particular that you do NOT SEND ANY
> SENSITIVE INFORMATION, that you do not include details of the previous
> message in any reply, and that you enter e-mail address(es) manually every
> time you write an e-mail. Please notify Eniso Partners immediately if you
> received this e-mail by mistake or if you do not wish to receive any
> further e-mail correspondence. If you have received this e-mail by mistake,
> please completely delete it (and any attachments) and do not forward it or
> inform any other person of its contents.
>
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list