我发现,当我将数据帧从宽到长转换时,它将占用更多的内存!我很好奇为什么会这样?它是否必须做最大尺寸的事情?
在下面重新表达
library(tidyr)
nms <- c('uid', paste('cid', 1:1000))
df <-
cbind(1:1000, replicate(1000, rnorm(1000)))
colnames(df) <- nms
df <- as.data.frame(df)
pryr::object_size(df)
#> 8.13 MB
df %>%
gather('cid', 'value', -uid) %>%
pryr::object_size()
#> 24.1 MB