gpt4 book ai didi

r - 如何循环遍历 data.table 中由数字索引的变量?

转载 作者:行者123 更新时间:2023-12-01 09:42:32 24 4
gpt4 key购买 nike

我是 R 的新手,需要一些帮助来解决以下问题:

我有一个相当大的 data.table 格式的数据集,我想遍历一组由数字索引的变量(例如,x_1、x_2、...、x_n ).为简单起见,假设我想对变量 y 的不同值取每个变量的平均值,并在我的 data.table 中将它们命名为 (m_1,m_2, ..., m_n) .

有人可以推荐一个有效的代码吗? nx_* 之类的变量数量太多,我无法一一完成。

谢谢

最佳答案

非常简单高效:

ind = 1:5 # replace 5 with your n
for (i in ind) {
set(df, j = paste("m", i, sep = "_"), value = mean(df[[paste("x", i, sep = "_")]]))
}

set 通常极快。它不允许分组操作,因此如果您需要按另一列分组,则需要采用不同的方法,例如:

ind = 1:5
df[, paste("m", ind, sep = "_") := lapply(.SD, mean), .SDcols = paste("x", ind, sep = "_")]

在上面,您可以正常使用by参数。

关于r - 如何循环遍历 data.table 中由数字索引的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57876187/

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