[R] Manipulation of data.frame into an array
Rui Barradas
ru|pb@rr@d@@ @end|ng |rom @@po@pt
Thu May 24 17:51:33 CEST 2018
Hello,
I still don't understand, my code returns each imputation in a separate
data.frame.
mydata <- split(Imputed, cumsum(c(0, diff(Imputed$Y) != 1)))
mydata[[1]]
# X1 X2 Y
#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
And mydata[[2]] will be the other imputation.
If this is not what you want, can you please post an example output
mydata[[1]] from the database you have posted?
Rui Barradas
On 5/24/2018 4:14 PM, Ioanna Ioannou wrote:
> 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]]
>
> ______________________________________________
> 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.
>
More information about the R-help
mailing list