x = iris$Sepal.Width;
y = iris$Species;
m = cbind(x,y);
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
但我想在y列中使用“setosa”等,而不是数字
我怎样才能做到这一点?
我想合并2个向量,因为之后我想用
m[m[,"y"]=="virginica",]
还是在没有限制的情况下这样做的另一个机会?
最佳答案
如果将vectors
与cbind
结合使用,则结果将是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
关于r - cbind用数字替换String?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23567625/