我试图按列类总结虹膜数据集的列。我尝试在列类列表上使用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
(因此,names(col)的长度为5,而split变量(col class)的长度为6) 。使用split(rep(names(col.cl), sapply(col.cl, length)), unlist(col.cl))
可以解决长度上的不匹配问题,并摆脱了警告,但是我想知道是否有一种更简洁的方法来实现不需要rep
的相同结果?