如何创建一个R方法

如何创建一个R方法,r,methods,range,R,Methods,Range,我不熟悉R方法,我想用R创建一个方法“格式” 我有数字和分类属性。对于数值属性,我想检查值是否在[0100]范围内(检查值并删除任何不符合要求的内容),对于分类属性,我想将它们转换为因子,并检查它们是否按适当的级别排序。例如,因子(high,levels=c(“low”,“medium”,“high”),数值和因子在逻辑上是非常不同的“事物”,您试图做什么来处理它们,使它们像这样?(顺便说一句:简单的向量不能在同一个向量中组合数字和因子。)正如@r2evans所说,数值和因子是非常不同的。很难看

我不熟悉R方法,我想用R创建一个方法“格式”


我有数字和分类属性。对于数值属性,我想检查值是否在[0100]范围内(检查值并删除任何不符合要求的内容),对于分类属性,我想将它们转换为因子,并检查它们是否按适当的级别排序。例如,因子(
high
levels=c(“low”,“medium”,“high”)

数值和因子在逻辑上是非常不同的“事物”,您试图做什么来处理它们,使它们像这样?(顺便说一句:简单的向量不能在同一个向量中组合数字和因子。)正如@r2evans所说,数值和因子是非常不同的。很难看出一个函数应该如何处理这两种情况。在这里你实际上需要做什么?如果它不在[0100]范围内,你需要修改值吗?您需要对因子变量进行排序吗?还是只需要控制流的布尔值?还有,这些列表?向量?数据帧?矩阵?数组?TIBLES?如果没有样本数据集或更详细的解释,很难提供帮助。您对[0100]的“检查”是什么意思?您的意思是过滤数据并只返回该范围内的值?还是返回一个布尔向量(
logical
,用R-speak)来指示某个值是否在该范围内?我解释说,r2evans是在方法“format”的参数中传递的对象是来自类player:的对象,该类为data.frame,有两列:属性及其赋值。我有数字属性和分类属性。对于数字属性,我想检查值是否在范围[0100]内(TRUE或FALSE)对于分类属性,我想将它们转换为因子,并检查它们是否按适当的级别排序。例如,因子(“高”,级别=c(“低”,“中”,“高”)。感谢您的帮助“检查”是什么意思?对我来说,您可能指“检查值并删除任何不符合要求的内容”,或者您可能指“检查值并返回逻辑向量以报告哪些是符合要求的”。请通过复制dput(head(x))的输出来包含数据样本,你的问题,然后粘贴到那里。我必须说,SO并不是一个教程网站,这看起来很像基本R编程教程中所涵盖的内容。如果你有你尝试过的代码,你也需要包括这些。数值和因子在逻辑上是非常不同的“东西”“,您试图做什么,使它们像这样处理?(顺便说一句:简单向量不能在同一个向量中组合数字和因子。)正如@r2evans所说,数值和因子是非常不同的。很难看出一个函数应该如何处理这两种情况。在这里你实际上需要做什么?如果它不在[0100]范围内,你需要修改值吗?您需要对因子变量进行排序吗?还是只需要控制流的布尔值?还有,这些列表?向量?数据帧?矩阵?数组?TIBLES?如果没有样本数据集或更详细的解释,很难提供帮助。您对[0100]的“检查”是什么意思?您的意思是过滤数据并只返回该范围内的值?还是返回一个布尔向量(
logical
,用R-speak)来指示某个值是否在该范围内?我解释说,r2evans是在方法“format”的参数中传递的对象是来自类player:的对象,该类为data.frame,有两列:属性及其赋值。我有数字属性和分类属性。对于数字属性,我想检查值是否在范围[0100]内(TRUE或FALSE)对于分类属性,我想将它们转换为因子,并检查它们是否按适当的级别排序。例如,因子(“高”,级别=c(“低”,“中”,“高”)。感谢您的帮助“检查”是什么意思?对我来说,您可能指“检查值并删除任何不符合要求的内容”,或者您可能指“检查值并返回逻辑向量以报告哪些是符合要求的”。请通过复制dput(head(x))的输出来包含数据样本,你的问题,然后粘贴到那里。我必须说,SO不是一个教程网站,这看起来很像基本R编程教程中介绍的内容。如果你有你尝试过的代码,你也需要包括这些代码。
format <- function(object,...){
}
> dput(head(data))
structure(list(attribute = c("Acceleration/speed", "Dribbling", 
"Aggression", "Ball Control", "Composure", "Crossing"), weights = c(0.174119699170201, 
0.0142504648411431, 0, 0.0821275086888316, 0, 0.079118689094399
), values = list(82.5, 88, 84, 92, 86, 90)), .Names = c("attribute", 
"weights", "values"), row.names = c(NA, 6L), class = c("player", 
"data.frame"))