gpt4 book ai didi

r - 访问 R mmap 对象中的数据框列

转载 作者:行者123 更新时间:2023-12-04 15:47:23 26 4
gpt4 key购买 nike

我正在尝试移植一些代码以使用 mmap 包。我在访问数据框列时遇到问题。

我希望能够使用 $ 访问数据列和 [[运营商。这是我得到的结果。

> foo <- as.mmap(mtcars)
> foo[,'mpg'] # works
mpg
1 21.0
2 21.0
3 22.8
4 21.4
5 18.7
...
> foo$mpg #does not work
NULL
> foo[['mpg']] #also does not work
NULL
> foo[]$mpg #works
...
> foo[][['mpg']] #also works
...

有什么方法可以制作 $[[运算符在内存映射对象上工作,就像在常规数据帧上一样?

编辑:
根据 Joshua 的建议,我为 [[ 添加了一个函数。
`[[.mmap` <- function(x,...) `[[`(x[],...)

对于 $这似乎不是特别优雅,但似乎有效。
> `$.mmap` <- function(x,...) {
if (...%in%c("storage.mode","bytes","extractFUN","filedesc")){
get(...,envir=x)
}else {
eval(call('$',x[],substitute(...)))
}}

最佳答案

这些函数不起作用,因为它们没有 mmap方法。

> grep("mmap",methods("["),value=TRUE)
[1] "[.mmap"
> grep("mmap",methods("[["),value=TRUE)
character(0)
> grep("mmap",methods("$"),value=TRUE)
character(0)

因此,他们调度到默认方法,这些方法不知道如何处理 mmap目的。你需要写 mmap [[ 的方法和 $ .

关于r - 访问 R mmap 对象中的数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8748096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com