[R] Manipulation of data.frame into an array
Ioanna Ioannou
||54250 @end|ng |rom m@n@com
Thu May 24 17:14:08 CEST 2018
Hello everyone,
Thank you for this. Nonetheless it is not exactly want i need.
I need mydata[[1]] to provide the values for all 3 variables (Y, X1 and X2) of the first imputation only. As it stands it returns the whole database.
Any ideas?
Best,
ioanna
________________________________
From: Bert Gunter <bgunter.4567 using gmail.com>
Sent: 24 May 2018 16:04
To: Ioanna Ioannou
Cc: r-help using r-project.org
Subject: Re: [R] Manipulation of data.frame into an array
This is one of those instances where a less superficial knowledge of R's technical details comes in really handy.
What you need to do is convert the data frame to a single (numeric) vector for, e.g. a matrix() call. This can be easily done by noting that a data frame is also a list and using do.call():
## imp is the data frame:
do.call(c,imp)
X11 X12 X13 X14 X15 X16 X17 X18 X19 X110 X111 X112 X113 X114
1 2 1 2 1 2 1 2 1 2 1 2 1 2
X115 X116 X21 X22 X23 X24 X25 X26 X27 X28 X29 X210 X211 X212
1 2 0 1 0 1 1 1 0 1 0 1 0 1
X213 X214 X215 X216 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10
1 1 0 1 1 2 3 4 5 6 7 8 1 2
Y11 Y12 Y13 Y14 Y15 Y16
3 4 5 6 7 8
So, e.g. for a 3 column matrix:
> matrix(do.call(c,imp), ncol=3)
[,1] [,2] [,3]
[1,] 1 0 1
[2,] 2 1 2
[3,] 1 0 3
[4,] 2 1 4
[5,] 1 1 5
[6,] 2 1 6
[7,] 1 0 7
[8,] 2 1 8
[9,] 1 0 1
[10,] 2 1 2
[11,] 1 0 3
[12,] 2 1 4
[13,] 1 1 5
[14,] 2 1 6
[15,] 1 0 7
[16,] 2 1 8
Cheers,
Bert
Bert Gunter
"The trouble with having an open mind is that people keep coming along and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Thu, May 24, 2018 at 7:46 AM, Ioanna Ioannou <ii54250 using msn.com<mailto:ii54250 using msn.com>> wrote:
Hello everyone,
I want to transform a data.frame into an array (lets call it mydata), where: mydata[[1]] is the first imputed dataset...and for each mydata[[d]], the first p columns are covariates X, and the last one is the outcome Y.
Lets assume a simple data.frame:
Imputed = data.frame( X1 = c(1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2),
X2 = c(0,1,0,1,1,1,0,1, 0,1,0,1,1,1,0,1),
Y = c(1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8))
The first 8 have been obtained by the first imputation and the later 8 by the 2nd.
Can you help me please?
Best,
ioanna
[[alternative HTML version deleted]]
______________________________________________
R-help using r-project.org<mailto:R-help using 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.
[[alternative HTML version deleted]]
More information about the R-help
mailing list