相关疑难解决方法(0)

如何在R中保存data.frame?

我在R中创建了一个不太大的data.frame,但是构建需要相当长的时间.我想将它保存为文件,我可以再次在R中打开?

r dataframe

130
推荐指数
3
解决办法
21万
查看次数

在函数中通过引用向data.table添加新列并不总是有效

在写一个依赖的包时data.table,我发现了一些奇怪的行为.我有一个函数删除和重新排序一些列引用,它工作得很好,这意味着data.table我传入的是修改而不分配函数输出.我有另一个添加列的函数,但这些更改并不总是存在于data.table传入的列中.

这是一个小例子:

library(data.table)  # I'm using 1.9.4
test <- data.table(id = letters[1:2], val=1:2)
foobar <- function(dt, col) {
    dt[, (col) := 1]
    invisible(dt)
}

test
#  id val
#1: a   1
#2: b   2
saveRDS(test, "test.rds")
test2 <- readRDS("test.rds")
all.equal(test, test2)
#[1] TRUE
foobar(test, "new")
test
#  id val new
#1: a   1   1
#2: b   2   1
foobar(test2, "new")
test2
#  id val
#1: a   1
#2: b   2
Run Code Online (Sandbox Code Playgroud)

发生了什么?有什么不同test2 …

r data.table

16
推荐指数
1
解决办法
1349
查看次数

readRDS()加载额外的包

在什么情况下readRDS()R 中的函数尝试加载包/命名空间?我很惊讶在新的R会议中看到以下内容:

> loadedNamespaces()
[1] "base"      "datasets"  "graphics"  "grDevices" "methods"   "stats"    
[7] "tools"     "utils"    
> x <- readRDS('../../../../data/models/my_model.rds')
There were 19 warnings (use warnings() to see them)
> loadedNamespaces()
 [1] "base"         "class"        "colorspace"   "data.table"  
 [5] "datasets"     "dichromat"    "e1071"        "earth"       
 [9] "evaluate"     "fields"       "formatR"      "gbm"         
[13] "ggthemes"     "graphics"     "grDevices"    "grid"        
[17] "Iso"          "knitr"        "labeling"     "lattice"     
[21] "lubridate"    "MASS"         "methods"      "munsell"     
[25] "plotmo"       "plyr"         "proto"        "quantreg"    
[29] "randomForest" "RColorBrewer" "reshape2"     "rJava"       
[33] "scales"       "spam"         "SparseM"      "splines"     
[37] "stats"        "stringr"      "survival" …
Run Code Online (Sandbox Code Playgroud)

serialization r

9
推荐指数
1
解决办法
1002
查看次数

标签 统计

r ×3

data.table ×1

dataframe ×1

serialization ×1