首页 文章

eval函数中的R错误

提问于
浏览
0

大家好我正在尝试在R中创建一个函数来清理数据......以下代码是其中的一部分 .

limpio=function (tabla, campo, campo_conteo){

  tabla1<-aggregate(campo_conteo ~ campo, tabla, length)
  colnames(tabla1)[2]<-"frecuencia"
  tabla2 <- gsub('\\s+','',toupper(tabla1$campo)) 
  View(tabla2) }

所以,当我跑:

limpio(vendidos, Nacionality, CustomerID)

我收到以下错误:

eval(expr,envir,enclos)中的错误:找不到对象'CustomerID'

但该列确实存在,所以不知道问题是什么 .

colnames(vendidos)

 #[1] "ID"             "CampaignID"     "CustomerID"     "PhoneID"        "Name"          
 #[6] "NumberType"     "Number"         "Birthday"       "Sex"            "Holder"        
#[11] "HolderNumber"   "Nacionality"    "Address"        "City"           "Zip"

1 回答

  • 3

    您无法像这样创建公式对象 . 您需要将字符传递给函数并从中创建公式:

    limpio <- function (tabla, campo, campo_conteo){
      f <- as.formula(paste(campo_conteo, campo, sep="~"))
      tabla1<-aggregate(f, tabla, length)
      colnames(tabla1)[2]<-"frecuencia"
      gsub('\\s+','',toupper(tabla1$campo)) 
      }
    
    limpio(vendidos, "Nacionality", "CustomerID")
    

    或者,您可以使用非公式 aggregate 方法 .

相关问题