Создайте переменную для вызова data.frame в R - PullRequest
0 голосов
/ 28 августа 2018

Итак, я создал программу, которая запускает сводку и анову, а также составляет несколько графиков для меня. Проблема в том, что для каждого нового фрейма данных, который я использую, мне нужно изменить переменные внутри формул. Что я хочу сделать, это создать переменную в начале скрипта, которую я назначаю столбцу, который меня интересует, и затем программа выполняет работу:

mydata <- Leaves.data.csv
attach(mydata)
str(mydata)

var <- Leaves

avgVaL <- group_by(mydata, Treatment, Medium, Treatment:Medium) %>% 
summarise(count=sum(!is.na(var)), mean = mean(var, na.rm = T), sd = sd(var, na.rm=T), se = sd/sqrt(count)) 

Единственное, что я хочу изменить, это Leaves. Проблема с этим кодом состоит в том, что summarise принимает var как одну переменную и возвращает количество, среднее, sd и se всех точек данных вместо каждой группы.

1 Ответ

0 голосов
/ 30 августа 2018

В конце мне нужно было использовать функцию quo(), так как эта функция цитирует мой ввод, а не оценку, поэтому (если я правильно понимаю) цитирование будет похоже на вызов в других языках программирования, что означает, что вы вызываете эту переменную напрямую из исходного фрейма данных, а не создание нового в целом. В то же время вы должны использовать !! за каждым вызовом внутри интересующей функции, поскольку это говорит функции оценивать уже заключенную в кавычки переменную (а не заключать в кавычки снова).

Гораздо лучше объяснено: https://cran.r -project.org / web / packages / dplyr / vignettes / software.html

код:

var <- quo(Root.growth)
avgVar <- group_by(mydata, Treatment, Medium) 
%>% summarise(count=sum(!is.na(!!var)), mean = mean(!!var, na.rm = T), sd = sd(!!var, na.rm=T), se = sd/sqrt(count)) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...