diff --git a/src/Datasets.jl b/src/Datasets.jl
index 8be6bfb55386486995e48cc991b46598b0cd8e00..086e99e6f9933186d9c42644abf7939196e4ddc1 100644
--- a/src/Datasets.jl
+++ b/src/Datasets.jl
@@ -725,7 +725,13 @@ function getlabels(dataset; labels=nothing, attrname=(:labels, :names), store::B
 end
 
 encodelabels(label::T, labelset::Vector{T}) where {T} = findfirst(==(label), labelset)
-encodelabels(labels::Vector{T}, labelset::Vector{T}) where {T} = [encodelabels(label, labelset) for label in labels]
+function encodelabels(labels::Vector{T}, labelset::Vector{T}) where {T}
+    if isempty(labels)
+        Int[]
+    else
+        [encodelabels(label, labelset) for label in labels]
+    end
+end
 
 function encodelabels(labelseries::Vector, labelset::Vector)
     encodedlabels = Union{Int, Vector{Int}}[]