小编lyh*_*817的帖子

高级 R 中修改列表的示例

我似乎无法理解Advanced R 中的以下示例

x <- data.frame(matrix(runif(5 * 1e4), ncol = 5))
medians <- vapply(x, median, numeric(1))

y <- as.list(x)
cat(tracemem(y), "\n")
#> <0x7f80c5c3de20>

for (i in 1:5) {
  y[[i]] <- y[[i]] - medians[[i]]
}
#> tracemem[0x7f80c5c3de20 -> 0x7f80c48de210]: 
Run Code Online (Sandbox Code Playgroud)

我不明白为什么在这种情况下会创建一个副本,因为“如果一个对象绑定了一个名称,R 将就地修改它”,而引用的对象y确实只y绑定了一个名称。

memory for-loop r list dataframe

6
推荐指数
2
解决办法
274
查看次数

标签 统计

dataframe ×1

for-loop ×1

list ×1

memory ×1

r ×1