Я хотел бы преобразовать строку, передающую функцию в объект (или имя столбца).
Я знаю, что это работает:
df <- data.frame(A = 1:10, B = 11:20)
test.function <- function(x)
{
z <- df[[x]]
return(z)
}
test.function("A")
Я не хочу использовать оператор [[.]], потому что иногда он непрактичен или даже неприменим. Меня интересует общий метод преобразования строки в "объект". Поэтому я попробовал следующее:
df <- data.frame(A = 1:10, B = 11:20)
test.function <- function(x)
{
z <- get(paste("df$", x, sep = ""))
return(z)
}
test.function("A")
или
df <- data.frame(A = 1:10, B = 11:20)
test.function <- function(x)
{
z <- as.name(paste("df$", x, sep = ""))
return(z)
}
test.function("A")
или
df <- data.frame(A = 1:10, B = 11:20)
test.function <- function(x)
{
z <- df$as.name(x)
return(z)
}
test.function("A")
Я также пытался играть с функциями parse, do.call и eval. К сожалению, я потерпел неудачу