R: Passing a single list of matrices as input to a function that requires at least 2 input matrices
up vote
1
down vote
favorite
I am trying to use the R mnnCorrect function (from the scran package). It requires at least 2 input matrices to work.
# install package
source("https://bioconductor.org/biocLite.R"); biocLite("scran")
# example matrix 1
B1 <- matrix(rnorm(10000), ncol=50)
# example matrix 2
B2 <- matrix(rnorm(10000), ncol=50)
# function below works fine
out <- mnnCorrect(B1, B2)
However, I am trying to supply these matrices as a list like so (more convenient for automating the process with a variable number of matrices):
mat_list=list()
mat_list[["Mat1"]]=B1
mat_list[["Mat2"]]=B2
str(mat_list)
List of 2
$ Mat1: num [1:200, 1:50] 1.107 -0.828 1.559 -1.353 0.667 ...
$ Mat2: num [1:200, 1:50] -0.231 0.894 0.369 1.606 -1.346 ...
# This works fine
out <- mnnCorrect(mat_list$Mat1, mat_list$Mat2)
# These do not work
out <- mnnCorrect(mat_list)
Error in mnnCorrect(mat_list) : at least two batches must be specified
out <- mnnCorrect(cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", "))
Error in mnnCorrect(mat_list) : at least two batches must be specified
out <- mnnCorrect(capture.output(cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", ")))
Error in mnnCorrect(mat_list) : at least two batches must be specified
library(dplyr)
cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", ") %>% mnnCorrect(.)
mat_list$Mat1, mat_list$Mat2Error in mnnCorrect(.) : at least two batches must be specified
Is there a way to achieve this?
r list matrix
add a comment |
up vote
1
down vote
favorite
I am trying to use the R mnnCorrect function (from the scran package). It requires at least 2 input matrices to work.
# install package
source("https://bioconductor.org/biocLite.R"); biocLite("scran")
# example matrix 1
B1 <- matrix(rnorm(10000), ncol=50)
# example matrix 2
B2 <- matrix(rnorm(10000), ncol=50)
# function below works fine
out <- mnnCorrect(B1, B2)
However, I am trying to supply these matrices as a list like so (more convenient for automating the process with a variable number of matrices):
mat_list=list()
mat_list[["Mat1"]]=B1
mat_list[["Mat2"]]=B2
str(mat_list)
List of 2
$ Mat1: num [1:200, 1:50] 1.107 -0.828 1.559 -1.353 0.667 ...
$ Mat2: num [1:200, 1:50] -0.231 0.894 0.369 1.606 -1.346 ...
# This works fine
out <- mnnCorrect(mat_list$Mat1, mat_list$Mat2)
# These do not work
out <- mnnCorrect(mat_list)
Error in mnnCorrect(mat_list) : at least two batches must be specified
out <- mnnCorrect(cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", "))
Error in mnnCorrect(mat_list) : at least two batches must be specified
out <- mnnCorrect(capture.output(cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", ")))
Error in mnnCorrect(mat_list) : at least two batches must be specified
library(dplyr)
cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", ") %>% mnnCorrect(.)
mat_list$Mat1, mat_list$Mat2Error in mnnCorrect(.) : at least two batches must be specified
Is there a way to achieve this?
r list matrix
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I am trying to use the R mnnCorrect function (from the scran package). It requires at least 2 input matrices to work.
# install package
source("https://bioconductor.org/biocLite.R"); biocLite("scran")
# example matrix 1
B1 <- matrix(rnorm(10000), ncol=50)
# example matrix 2
B2 <- matrix(rnorm(10000), ncol=50)
# function below works fine
out <- mnnCorrect(B1, B2)
However, I am trying to supply these matrices as a list like so (more convenient for automating the process with a variable number of matrices):
mat_list=list()
mat_list[["Mat1"]]=B1
mat_list[["Mat2"]]=B2
str(mat_list)
List of 2
$ Mat1: num [1:200, 1:50] 1.107 -0.828 1.559 -1.353 0.667 ...
$ Mat2: num [1:200, 1:50] -0.231 0.894 0.369 1.606 -1.346 ...
# This works fine
out <- mnnCorrect(mat_list$Mat1, mat_list$Mat2)
# These do not work
out <- mnnCorrect(mat_list)
Error in mnnCorrect(mat_list) : at least two batches must be specified
out <- mnnCorrect(cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", "))
Error in mnnCorrect(mat_list) : at least two batches must be specified
out <- mnnCorrect(capture.output(cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", ")))
Error in mnnCorrect(mat_list) : at least two batches must be specified
library(dplyr)
cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", ") %>% mnnCorrect(.)
mat_list$Mat1, mat_list$Mat2Error in mnnCorrect(.) : at least two batches must be specified
Is there a way to achieve this?
r list matrix
I am trying to use the R mnnCorrect function (from the scran package). It requires at least 2 input matrices to work.
# install package
source("https://bioconductor.org/biocLite.R"); biocLite("scran")
# example matrix 1
B1 <- matrix(rnorm(10000), ncol=50)
# example matrix 2
B2 <- matrix(rnorm(10000), ncol=50)
# function below works fine
out <- mnnCorrect(B1, B2)
However, I am trying to supply these matrices as a list like so (more convenient for automating the process with a variable number of matrices):
mat_list=list()
mat_list[["Mat1"]]=B1
mat_list[["Mat2"]]=B2
str(mat_list)
List of 2
$ Mat1: num [1:200, 1:50] 1.107 -0.828 1.559 -1.353 0.667 ...
$ Mat2: num [1:200, 1:50] -0.231 0.894 0.369 1.606 -1.346 ...
# This works fine
out <- mnnCorrect(mat_list$Mat1, mat_list$Mat2)
# These do not work
out <- mnnCorrect(mat_list)
Error in mnnCorrect(mat_list) : at least two batches must be specified
out <- mnnCorrect(cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", "))
Error in mnnCorrect(mat_list) : at least two batches must be specified
out <- mnnCorrect(capture.output(cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", ")))
Error in mnnCorrect(mat_list) : at least two batches must be specified
library(dplyr)
cat(paste(gsub("^","mat_list$",names(mat_list)),collapse=", ") %>% mnnCorrect(.)
mat_list$Mat1, mat_list$Mat2Error in mnnCorrect(.) : at least two batches must be specified
Is there a way to achieve this?
r list matrix
r list matrix
edited Nov 22 at 8:15
asked Nov 22 at 8:12
user31888
937
937
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
In R, you use the function do.call for that. Here is an example:
do.call(mnnCorrect, mat_list)
See also the help page ?do.call .
Works great, thanks !
– user31888
Nov 22 at 8:34
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
In R, you use the function do.call for that. Here is an example:
do.call(mnnCorrect, mat_list)
See also the help page ?do.call .
Works great, thanks !
– user31888
Nov 22 at 8:34
add a comment |
up vote
1
down vote
accepted
In R, you use the function do.call for that. Here is an example:
do.call(mnnCorrect, mat_list)
See also the help page ?do.call .
Works great, thanks !
– user31888
Nov 22 at 8:34
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
In R, you use the function do.call for that. Here is an example:
do.call(mnnCorrect, mat_list)
See also the help page ?do.call .
In R, you use the function do.call for that. Here is an example:
do.call(mnnCorrect, mat_list)
See also the help page ?do.call .
answered Nov 22 at 8:30
Thriving For Perfection
517
517
Works great, thanks !
– user31888
Nov 22 at 8:34
add a comment |
Works great, thanks !
– user31888
Nov 22 at 8:34
Works great, thanks !
– user31888
Nov 22 at 8:34
Works great, thanks !
– user31888
Nov 22 at 8:34
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53426441%2fr-passing-a-single-list-of-matrices-as-input-to-a-function-that-requires-at-lea%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown