Olá

O colega já lhe deu a solução, mas se é pra facilitar a vida do usuário leigo segue sugestão

(df = data.frame( a=letters[10], b=LETTERS[10], c=seq(10), d=letters[1:10], e=letters[1:10] ))

## -------- exemplo1 ----------------
remove.var = function(dataname, vars)
{
    dataname[vars] <- list(NULL)
    return(dataname)
}##end function

vars = c("a", "b")
remove.var(df, vars)

## -------- exemplo2 ----------------
remove.var = function(dataname, vars)
{
    return(dataname[, ! names(dataname) %in% vars, drop = FALSE])
}##end function

vars = c("a", "b")
remove.var(df, vars)

saudações

Em 28/02/2016 08:55, Elias Carvalho escreveu:
Ola Pessoal

Para facilitar a vida de um usuário leigo, eu criei uma função para excluir as colunas de uma tabela, conforme código abaixo:

 1. remove.variables <- function(dataset.name <http://dataset.name/>,
    vars.to.remove)
 2. {
 3.   # scan the variables to be removed
 4.   for (x in 1 : length(vars.to.remove))
 5.   {
 6.     # transform command.Remove in "data$variable <- NULL"
 7.     command.Remove <- paste(dataset.name
    <http://dataset.name/>,"$",vars.to.remove[x], " <- NULL",sep="")
 8.     # execute the command
 9.     command.Remove <- eval(parse(text=command.Remove))
10.   } #  for (x in 1 : length(vars.to.remove))
11. } # remove.variables <- function(dataset.name
    <http://dataset.name/>, vars.to.remove)


Fazendo um teste local, ou seja, executando o procedimento abaixo com as variáveisdataset.name <http://dataset.name/>, vars.to.remove carregadas respectivamente com o nome do meu data frame "data" e com o nome de duas variáveis "var1" e "var5" a serem removidas e executando da linha 2 a 11 tudo tunciona bem e as colunas são removidas.

dataset.name <http://dataset.name/> <- "data"
vars.to.remove<-c("var1", "var5")

No entanto se carrego a função e executo os procedimentos abaixo em outro script, a função é executada sem erro, mas não remove nenhuma coluna do data frame:

vars.to.remove = c("var1", "var5")
dataset.name <http://dataset.name/> = "data"

remove.variables(dataset.name <http://dataset.name/>, vars.to.remove)

Eu acredito que tem a ver com o ambiente, acesso global algo assim mas não estou achando a solução.

Agradeço se aguem puder me ajudar.

--
Best regards... 8^)

“The mind that is open to new ideas never come back
to its original size” /Albert Einstein/


_____________________________________________
Prof. Elias César Araújo de Carvalho
CV: http://lattes.cnpq.br/4248328961021251


_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo 
m�nimo reproduz�vel.

_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo 
m�nimo reproduz�vel.

Responder a