Я не могу понять, почему я получаю ошибку
Error: object 'grade' not found
при создании функции.
Оценка, очевидно, входит в набор данных и включена в функцию. Если я не использую функцию и просто использую
dat%>%
cohort.fun()%>%
group_by(cohort, variable, timepoint)%>%
summarize(perf_measure = mean(measure))
, все работает нормально. Вот две функции, которые я использую:
library(reshape2)
library(tidyverse)
cohort.fun <- function(dat){
dat%>%
mutate(grade = as.numeric(grade))%>%
mutate(cohort = ifelse(grade%in%c(3,4),3,ifelse(
grade%in%c(5,6), 5, ifelse(
grade%in%c(7,8), 7, grade))))%>%
mutate(cohort = as.character(cohort))
}
melt.fun <- function(dat){
melt(c("pid", "grade", "timepoint"), value.name = "measure")%>%
cohort.fun()
}
, затем я запускаю
dat%>%
melt.fun()
, и я получаю ошибку выше. Любые идеи? Большое спасибо!
Вот результат:
structure(list(pid = c("ADMIN-UCSF-bo004", "ADMIN-UCSF-bo005",
"ADMIN-UCSF-bo008", "ADMIN-UCSF-bo010", "ADMIN-UCSF-bo011", "ADMIN-UCSF-bo012",
"ADMIN-UCSF-bo013", "ADMIN-UCSF-bo014", "ADMIN-UCSF-bo015", "ADMIN-UCSF-bo016"
), grade = c("3", "3", "3", "3", "3", "3", "3", "3", "3", "3"
), RC1 = c(-1.81295211570392, -1.31252376878321, -1.1701654183369,
-1.58244557144815, -1.95383829351231, -0.516109923323212, -0.370765686983851,
-1.93212644807752, -1.6241046548069, -1.34160382084709), RC2 = c(-0.363819589341912,
0.268206917949323, -2.24123725035034, -0.25274997192688, 0.313608190056975,
-0.0393486670413662, -0.0623610937831014, 0.803692668734253,
0.416065992573585, -0.069880541013785), RC3 = c(-2.69157047028032,
-0.822917456389246, -1.52186068360016, -0.590070546800741, 0.583790188582597,
-0.253888391947117, 1.22197349838073, -1.63335701437031, 1.24595192142446,
0.0191275904777839), timepoint = c(1, 1, 1, 1, 1, 1, 1, 1, 1,
1)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-10L))