I have a SummarizedExperiment with putatively user-annoted rowData. I have a function that does computation on this SE and appends the results to the rowData. When (repeatedly) called on the SE, the function just overwrites / replaces already existing columns.
In R release and S4Vectors_0.20.1 > sessionInfo() R version 3.5.2 (2018-12-20) Platform: x86_64-apple-darwin15.6.0 (64-bit) Running under: macOS Mojave 10.14.3 Matrix products: default BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] parallel stats4 stats graphics grDevices utils datasets [8] methods base other attached packages: [1] S4Vectors_0.20.1 BiocGenerics_0.28.0 loaded via a namespace (and not attached): [1] compiler_3.5.2 this works: # my rowData > d <- DataFrame(a=c(1,2), b=c(3,4), c=c(5,6)) DataFrame with 2 rows and 3 columns a b c <numeric> <numeric> <numeric> 1 1 3 5 2 2 4 6 # output of my function > d2 <- DataFrame(b=c(7,8), c=c(9,10), d=c(11,12)) DataFrame with 2 rows and 3 columns b c d <numeric> <numeric> <numeric> 1 7 9 11 2 8 10 12 # replace and simultaneously append > d[,colnames(d2)] <- d2 > d DataFrame with 2 rows and 4 columns a b c d <numeric> <numeric> <numeric> <numeric> 1 1 7 9 11 2 2 8 10 12 However, using R-devel and S4Vectors_0.21.20 > sessionInfo() R Under development (unstable) (2019-01-18 r75994) Platform: x86_64-apple-darwin18.2.0 (64-bit) Running under: macOS Mojave 10.14.3 Matrix products: default BLAS: /Users/ludwig/Downloads/R-devel/lib/libRblas.dylib LAPACK: /Users/ludwig/Downloads/R-devel/lib/libRlapack.dylib locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] parallel stats4 stats graphics grDevices utils datasets [8] methods base other attached packages: [1] S4Vectors_0.21.20 BiocGenerics_0.29.2 loaded via a namespace (and not attached): [1] compiler_3.6.0 The same replacement operation causes an error > d[,colnames(d2)] <- d2 Error in names(x@listData) <- value : 'names' attribute [3] must be the same length as the vector [1] For data.frame, this still works in R-devel: > dd <- as.data.frame(d) > dd2 <- as.data.frame(d2) > dd[,colnames(dd2)] <- dd2 > dd a b c d 1 1 7 9 11 2 2 8 10 12 How to best address this issue? -- Dr. Ludwig Geistlinger CUNY School of Public Health [[alternative HTML version deleted]] _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel