Andy,
Did you run into any kind of trouble?
I'm asking because I'm maintaining a package for spectroscopic data that heavily
uses "I (spectra.matrix)" ...
However, once you have the matrix safe inside the data.frame, you can delete the
"AsIs":
> a <- matrix (1:9, 3)
> str (a)
int [1:3, 1:3] 1 2 3 4 5 6 7 8 9
> df <- data.frame (a = I (a))
> str (df)
'data.frame': 3 obs. of 1 variable:
$ a: 'AsIs' int [1:3, 1:3] 1 2 3 4 5 6 7 8 9
> df$a <- unclass (df$a)
> str (df)
'data.frame': 3 obs. of 1 variable:
$ a: int [1:3, 1:3] 1 2 3 4 5 6 7 8 9
> df$a
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> dim (df)
[1] 3 1
However, I don't know whether something can now trigger a conversion to
data.frame that the AsIs would have stopped.
Cheers,
Claudia
apjawor...@mmm.com wrote:
Hi,
I have the following question about creating data frames. I want to
create a data frame with 2 components: a vector and a matrix.
Let me use a simple example:
y <- rnorm(10)
x <- matrix(rnorm(150), nrow=10)
Now if I do
dd <- data.frame(x=x, y=y)
I get a data frame with 16 colums, but if, according to the documentation,
I do
dd <- data.frame(x=I(x), y=y)
then str(dd) gives:
'data.frame': 10 obs. of 2 variables:
$ x: AsIs [1:10, 1:15] 0.700073.... -0.44371.... -0.46625....
0.977337.... 0.509786.... ...
$ y: num 0.4676 -1.4343 -0.3671 0.0637 -0.231 ...
This looks and works OK.
Now, there exists a CRAN package called pls. It has a yarn data set in
it.
data(yarn)
str(yarn)
'data.frame': 28 obs. of 3 variables:
$ NIR : num [1:28, 1:268] 3.07 3.07 3.08 3.08 3.1 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : NULL
.. ..$ : NULL
$ density: num 100 80.2 79.5 60.8 60 ...
$ train : logi TRUE TRUE TRUE TRUE TRUE TRUE ...
This looks almost the same, except the matrix component in my example has
the AsIs instead of num.
Is this just some older behavior of the data.frame function producing this
difference? If not, how can I get my data frame (dd) to look like yarn?
I read the help pages for data.frame and as.data.frame and found this
paragraph
If a list is supplied, each element is converted to a column in the data
frame. Similarly, each column of a matrix is converted separately. This
can be overridden if the object has a class which has a method for
as.data.frame: two examples are matrices of class "model.matrix" (which
are included as a single column) and list objects of class "POSIXlt" which
are coerced to class "POSIXct".
If I do
methods(as.data.frame)
[1] as.data.frame.aovproj* as.data.frame.array
[3] as.data.frame.AsIs as.data.frame.character
[5] as.data.frame.complex as.data.frame.data.frame
[7] as.data.frame.Date as.data.frame.default
[9] as.data.frame.difftime as.data.frame.factor
[11] as.data.frame.ftable* as.data.frame.integer
[13] as.data.frame.list as.data.frame.logical
[15] as.data.frame.logLik* as.data.frame.matrix
[17] as.data.frame.model.matrix as.data.frame.numeric
[19] as.data.frame.numeric_version as.data.frame.ordered
[21] as.data.frame.POSIXct as.data.frame.POSIXlt
[23] as.data.frame.raw as.data.frame.table
[25] as.data.frame.ts as.data.frame.vector
so it looks like there is a matrix method for as.data.frame. The question
then is how can I override the default behavior for the matrix object
(converting columns separately).
Any hint will be appreciated,
Andy
__________________________________
Andy Jaworski
518-1-01
Process Laboratory
3M Corporate Research Laboratory
-----
E-mail: apjawor...@mmm.com
Tel: (651) 733-6092
Fax: (651) 736-3122
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list
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.
--
Claudia Beleites
Dipartimento dei Materiali e delle Risorse Naturali
Università degli Studi di Trieste
Via Alfonso Valerio 6/a
I-34127 Trieste
phone: +39 0 40 5 58-37 68
email: cbelei...@units.it
______________________________________________
R-help@r-project.org mailing list
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.