我正在研究RStudio尝试循环几行dplyr-ggplot脚本来识别异常值,然后绘制一个图并标记异常值。数据的子集如下所示:
miR_373 ……
编程用 tidyverse 包需要一些习惯。在这种情况下,你正在治疗 i 好像它是一个表达式,实际上它是一个字符串。你可以把它转换成 quosure 然后在需要时取消引用它,如下所示:
tidyverse
i
quosure
for(i in miRs){ i <- rlang::parse_expr(i) dat2 <- cts %>% tibble::rownames_to_column(var="outlier") %>% group_by(type) %>% mutate(is_outlier=ifelse(is_outlier(!!i), !!i, as.numeric(NA))) dat2$outlier[which(is.na(dat2$is_outlier))] <- as.numeric(NA) dev.new() p <- ggplot(dat2, aes(y=!!i, x=factor(type))) + geom_boxplot() + geom_text(aes(label=outlier), na.rm=TRUE, hjust=0.05) + geom_dotplot(binaxis='y', stackdir='center', dotsize=1, binwidth = .5) print(p) }