R:找出变量类型的有效方法

时间:2015-08-25 22:10:20

标签: r

找出变量" ypred"的数据类型的最佳方法是什么?从以下代码生成(最后一行)?我知道上课(ypred)是"因素",但这不是我想要的......

library(e1017)
data(iris)
iris2 = iris[(iris$Species == 'setosa') | (iris$Species == 'virginica'),]
train = iris2[c(1:25, 51:75),]
test = iris2[c(26:50, 76:nrow(iris2)),]
m = svm(Species~., data=train, type = "nu-classification", kernel = "radial", probability = TRUE)
ypred = predict(m, test, probability = TRUE)

我尝试过以下方法:

> is.matrix(ypred)
[1] FALSE
> is.list(ypred)
[1] FALSE
> is.array(ypred)
[1] FALSE
> is.data.frame(ypred)
[1] FALSE
> is.vector(ypred)
[1] FALSE

我知道属性(ypred)是一个不错的R列表,但我仍然与

混淆
  • " ypred"的数据类型本身。
  • 在深入了解文档之前,我怎么知道我可以应用函数"属性"?

我是R的初学者,如果您能就如何计算R中超出原子数,整数,逻辑,字符和复数的数据类型/数据结构提出一些建议,我将不胜感激

2 个答案:

答案 0 :(得分:2)

数据类型为integer,但类为factor。因子在内部由整数表示,并作为字符打印。有关详情,请参阅?factor

你可以告诉你这是什么类型的对象以及你需要属性功能的方法是检查它所说的位置" VALUE"在?predict。这里它说要检查你预测的对象(svm)的特定预测函数,所以输入:

?predict.svm

它告诉你在VALUE下它会返回一个带有"概率的预测值向量"属性。

答案 1 :(得分:1)

使用class

data(iris)
iris2 <- iris[(iris$Species == 'setosa') | (iris$Species == 'virginica'),]
train <- iris2[c(1:25, 51:75),]
test <- iris2[c(26:50, 76:nrow(iris2)),]
require(e1071)
m <- svm(Species~., data=train, type = "nu-classification", kernel = "radial", probability = TRUE)
ypred <- predict(m, test, probability = TRUE)
class(iris2)
# [1] "data.frame"
class(train)
# [1] "data.frame"
class(test)
# [1] "data.frame"
class(m)
# [1] "svm.formula" "svm"        
class(ypred)
# [1] "factor"

我会使用<-代替=进行分配,以防止将变量分配到您的全局环境。