gpt4 book ai didi

r - 在 R 中缩放 data.table 列的子集

转载 作者:行者123 更新时间:2023-12-04 22:21:52 28 4
gpt4 key购买 nike

我想在我的 scale 中对列的子集进行 data.table 。有很多我想要 scale ,所以我想避免按名称指定它们。未缩放的列,我只想按原样返回。这是我希望能奏效的,但它没有:

require(data.table)
x = data.table(id=1:10, a=sample(1:10,10), b=sample(1:10,10), c=sample(1:10,10))
> dput(x)
structure(list(id = 1:10, a = c(1L, 6L, 10L, 7L, 5L, 3L, 2L,
4L, 9L, 8L), b = c(4L, 9L, 5L, 7L, 6L, 1L, 8L, 10L, 3L, 2L),
c = c(2L, 7L, 5L, 6L, 4L, 1L, 10L, 9L, 8L, 3L)), .Names = c("id",
"a", "b", "c"), row.names = c(NA, -10L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x1a85d088>)

sx = x[,c(id, lapply(.SD, function(v) as.vector(scale(v)))), .SDcols = colnames(x)[2:4]]
Error in eval(expr, envir, enclos) : object 'id' not found

有什么建议么?

最佳答案

sx = cbind(x[,-(2:4)],data.table(scale(x[,2:4])))

我怀疑,将 data.table 融合为长格式对您的工作流程来说会更好。

关于r - 在 R 中缩放 data.table 列的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15464661/

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