For vectors
being combined with cbind
, the result would be a matrix
, which can only hold one type of data. Thus, the "Species" factor gets coerced to its underlying numeric value.
Try cbind.data.frame
instead (or just data.frame
) if you need your columns to have different data types.
> head(data.frame(x, y))
x y
1 3.5 setosa
2 3.0 setosa
3 3.2 setosa
4 3.1 setosa
5 3.6 setosa
6 3.9 setosa
> head(cbind.data.frame(x, y))
x y
1 3.5 setosa
2 3.0 setosa
3 3.2 setosa
4 3.1 setosa
5 3.6 setosa
6 3.9 setosa