r中语句的含义?

r中语句的含义?,r,classification,training-data,R,Classification,Training Data,我试图在R中调试代码,以便理解它。声明如下: library(rpart) X = read.csv("strange_binary.csv"); fit = rpart(c ~ X + X.1 + X.2 + X.3 + X.4 + X.5 + X.6 + X.7 + X.8 + X.9, method ="class",data=X,minbucket=1,cp=.04); printcp(fit); fit = prune(fit,cp=.04); pred = predict(fit

我试图在
R
中调试代码,以便理解它。声明如下:

library(rpart)
X = read.csv("strange_binary.csv");
fit  = rpart(c ~ X + X.1 + X.2 + X.3 + X.4 + X.5 + X.6 + X.7 + X.8 + X.9, method ="class",data=X,minbucket=1,cp=.04);
printcp(fit);
fit = prune(fit,cp=.04);

pred = predict(fit,X[,1:10],type="vector")      # test the classifier on the training data
pred[pred == 2] = "bad"
pred[pred == 1] = "good"
其目的是构建分类器并在训练数据上进行测试。但是,我不理解以下陈述:

pred[pred == 2] = "bad"
pred[pred == 1] = "good"
pred==2
pred==1
可能是
TRUE
FALSE
-如何使用它来索引向量?对不起,我的天真的问题,我来自C++背景,在R.

中采取了小步骤。 谢谢你的帮助

这是一种说法: 将值“bad”指定给pred的子集,其中pred等于2

pred[pred == 2] = "bad"
将值“good”指定给pred的子集,其中pred等于1

pred[pred == 1] = "good"
一种更像R的赋值方式如下所示:

pred[pred == 2] <- "bad"
pred[pred == 1] <- "good"

它将帮助您了解每一步发生的情况。

您可以使用逻辑向量来选择数组元素。键入
?“[”
以获取帮助。尝试类似
x=c(“a”、“b”、“c”、“d”);x[c(FALSE、TRUE、TRUE、FALSE)]
。像这样的逻辑索引/子集设置在R中非常常见。
pred
是来自
predict
结果的向量。因此,模型似乎将结果预测为1或2,而该语句只是将结果更改为字符串“good”和“bad”@epi99,你能详细说明一下吗?我正在使用标准函数
predict()
进行预测。这是如何将预测值限制为
1
2
的呢?
strange\u binary.csv
文件的值分别为
0
1
。你希望
predict()有不同的输出吗
predict
是一个通用函数,根据传递给它的模型拟合类型和您给出的
type
参数,它的作用不同。我假设对于您的模型,获取预测类,即仅
1
2
,是有意义的。如果您想要其他类型的预测,您应该探索e
为您的特定型号键入
选项。我不认为使用
什么是
pred
?我的意思是问,哪一列(或哪一行)的
pred
将受到影响?为什么会受到影响?我相信大多数样式指南仍然建议
pred是您分配此
pred=predict(fit,X[,1:10],type=“vector”)结果的变量
这是前面两行等式的预测结果。@马吕斯,任何一种赋值方式都是完全可以接受和等效的,因此都会起作用,这只是R中的赋值惯例。这不是我解释的重点,只是我认为R的新手可能需要的东西,如果他们不习惯的话我可能会在其他解释中找到它。
str(fit)
str(pred)