У меня есть общая проблема с пониманием того, как создать пользовательскую функцию, которая может принимать переменные в качестве аргументов, которыми можно манипулировать внутри определенной функции. Я хочу создать функцию, в которой я могу передавать переменные в качестве аргументов внутренним функциям для манипуляций. Похоже, что многие из функций, которые я хочу использовать, требуют оператора c()
, который требует кавычек вокруг аргументов.
Поэтому моя функция должна иметь возможность передавать имя переменной из фрейма данных в кавычки для c()
и других функций, требующих строк кавычек. Я прочитал много сообщений на paste0
, paste
и cat(x)
, но не могу понять, как полностью решить мою проблему.
Вот простой набор данных и сокращенный код, которые помогут структурировать проблему. Здесь я просто хочу предоставить фрейм данных и три переменные. Функция должна предоставить среднее значение переменной в позиции y для каждой комбинации переменных x
и z
. Результирующая сводная таблица должна иметь имена переменных, предоставленных в качестве аргументов для XTABAR в качестве заголовков столбцов.
n=50
DataTest = data.frame( xcol=sample(1:3, n, replace=TRUE), ycol = rnorm(n, 5, 2), Catg=letters[1:5])
XTABAR<- function(DS,xcat,yvar,group){
library(plyr)
#library(ggplot2)
#library(dplyr)
#library(scales)
localenv<-environment()
gg<-data.frame(DS,x=DS[,xcat],y=DS[,yvar],z=DS[,group] )
cnames<-colnames(gg)
ag.gg<-aggregate(gg$y, by=list(gg$x,gg$z),FUN=mean)
colnames(ag.gg)<-c(cat('"',cnames[1],'"'),cat('"',cnames[2],'"'),cat('"',cnames[3],'"'))
return(ag.gg)
}
XTABAR(DataTest,"xcol","ycol","Catg")
Этот код максимально близок к решению простой задачи. Я не знаю, как удалить кавычки из имен столбцов и как избавиться от NA.
Спасибо за любую помощь по логике или коду.
colnames(ag.gg)<-c(xcat, yvar, group)
? - person lukeA   schedule 23.04.2014