Я хочу сделать скопления в таблице данных с помощью возвращаемых функций, может быть несколько строк, например summary()
или quantile()
. Способ, который я делаю до сих пор, таков:Именование соответствующих столбцов данных.table после агрегации в R
library(data.table)
x = as.data.table(iris)
x[, as.list(c(summary(Sepal.Length), summary(Sepal.Width))), by = Species]
Это работает, но приводит к произвольным именам столбцов. Если у меня есть вектор длиной 12, myColumnNames
, как я могу назначить новые столбцы для имени после этого вектора (без использования заданных имен в следующей строке)?
Моя «очевидная» попытка, x[, myColumnNames = as.list(c(summary(Sepal.Length), summary(Sepal.Width))), by = Species]
не удалась. Есть идеи?
Как насчет 'х [, setNames (as.list (с (резюме (Sepal.Length), резюме (Sepal.Width))), myColumnNames), по = ВИДОВ ] ' – akrun
Что сказал @akrun или вы можете установить имена после' data.table :: setnames'. Например, 'setnames (y, 2: 13, myColumnNames)', где 'y' - результат вашей строки. – nicola
@akrun Ваше решение работает отлично, спасибо! Пожалуйста, опубликуйте его, поэтому я могу принять его как правильный ответ. @nicola Я хочу избежать 'setnames()' после команды, чтобы избежать игры с такими индексами, как '2: 13' – GerasimosPanagiotakopoulos