【发布时间】:2013-11-19 12:27:40
【问题描述】:
所以,这就是我想做的事情:
df <- data.frame(a=1:6, b=1:6)
ss <- magicSubset(df, a <= 3)
ss$b <- 100
df$b # should be c(100,100,100,4,5,6)
在 R 或包中是否有类似的东西?我想实施起来不会太难……有什么理由是个坏主意吗?
【问题讨论】:
-
你能解释一下你为什么需要这个吗?也许还有另一种选择可以最终实现您想要的。
-
如果您可以选择切换到 data.table 而不是 data.frame,除非明确要求,否则 data.table 通常不会执行复制 --> EXAMPLE
-
理由如下:我正在创建一个框架,用户必须定期更新数据库中的单个特定行,在他们自己定义的函数中。如果我可以将该行“传递”给函数,那么他们编写
obj$field <- value会比编写objects$field[objects$id==obj$id] <- value容易得多。我去看看data.table,大概就是这样吧! -
我看了
data.table,它非常接近,但没有香蕉......我想。如果dt是一个data.table,那么dt2 <- dt将通过引用进行复制。但是dt2 <- dt[1:3,]创建了一个单独的副本。还是我在某处缺少功能? data.table 文档很难阅读...