我是 R 的新手,需要一些帮助来解决以下问题:
我有一个相当大的 data.table
格式的数据集,我想遍历一组由数字索引的变量(例如,x_1、x_2、...、x_n ).为简单起见,假设我想对变量 y 的不同值取每个变量的平均值,并在我的 data.table
中将它们命名为 (m_1,m_2, ..., m_n) .
有人可以推荐一个有效的代码吗? n
和 x_*
之类的变量数量太多,我无法一一完成。
谢谢
最佳答案
非常简单高效:
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/