cbind用数字替换String?

use*_*938 5 r vector matrix cbind

x = iris$Sepal.Width;
y = iris$Species;

m = cbind(x,y);
Run Code Online (Sandbox Code Playgroud)

m的输出是:

        x  y
  [1,] 3.5 1
  [2,] 3.0 1
  [3,] 3.2 1
  [4,] 3.1 1
  [5,] 3.6 1
  [6,] 3.9 1
Run Code Online (Sandbox Code Playgroud)

但是我想在列y中使用'setosa'等而不是数字

我怎样才能做到这一点?

我想结合2个向量,因为我想事后过滤

m[m[,"y"]=="virginica",]
Run Code Online (Sandbox Code Playgroud)

还是另一个没有cbind的机会呢?

A5C*_*2T1 11

为了vectors与之结合cbind,结果将是a matrix,它只能容纳一种类型的数据.因此,"物种"因子被强制转化为其基础数值.

如果您需要列具有不同的数据类型,请尝试cbind.data.frame(或仅data.frame).

> 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
Run Code Online (Sandbox Code Playgroud)