R - Группировка имен столбцов по классу столбцов с использованием split - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь суммировать столбцы набора данных iris по классам столбцов.Я попытался использовать split в списке классов столбцов:

col.cl = lapply(iris, class)

split(names(col.cl), unlist(col.cl)) 

Это дает что-то близкое к желаемому результату вместе с предупреждением:

Warning message:
In split.default(names(col.cl), unlist(col.cl)) :
  data length is not a multiple of split variable

$`factor`
[1] "Sepal.Length"

$numeric
[1] "Sepal.Width"  "Petal.Length" "Petal.Width" 

$ordered
[1] "Species"

Что связано сстолбец Species имеет два класса: ordered и factor (поэтому имена (столбец) имеет длину 5, а переменная разбиения (класс столбец) имеет длину 6).Использование split(rep(names(col.cl), sapply(col.cl, length)), unlist(col.cl)) устраняет несоответствие длин и избавляет от предупреждения, но мне было интересно, есть ли более краткий способ достижения того же результата, который не требует rep?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...