我试图将列索引传递给ggplot,作为我将反复使用的函数的一部分.

myplot <- function(df){
    ggplot(df, aes(df[, 1], df[, 2])) + geom_point()
}

我将始终使用第一列作为x变量,第二列作为y变量,但列名在数据集之间会发生变化.我找遍了..有什么 idea 吗?

EDIT:

This is the answer I used:

require(ggplot2)

myplot <- function(df){
   ggplot(df, aes_string(colnames(df)[1], colnames(df)[2])) + geom_point()
}

推荐答案

您可以使用aes_string代替aes来传递字符串,而不是使用对象,即:

myplot = function(df, x_string, y_string) {
   ggplot(df, aes_string(x = x_string, y = y_string)) + geom_point()
 }
myplot(df, "A", "B")
myplot(df, "B", "A")

R相关问答推荐

如何按行和列组合多个格式?

按自定义数字模式对变量名称排序

如何创建具有总计列和ggplot 2所有条线的百分比标签的堆叠条形图?

更改网格的crs以匹配简单要素点对象的crs

获取一个数据库框架的摘要,该数据库框架将包含一列数据库框架,

隐藏e_mark_line的工具提示

用预测NLS处理R中生物学假设之上的误差传播

使用ggsankey调整Sankey图中单个 node 上的标签

如何在modelsummary中重命名统计数据?

将数据集中的值增加到当前包含的最大值

条形图和在Ploly中悬停的问题

根据列A中的差异变异列,其中行由列B中的相对值标识

R spatstat Minkowski Sum()返回多个边界

如何基于两个条件从一列中提取行

如何指定我的函数应该查找哪个引用表?

为什么我使用geom_density的绘图不能到达x轴?

Geom_Hline将不会出现,而它以前出现了

Geom_arcbar()中出错:找不到函数";geom_arcbar";

如何在shiny 的应用程序 map 视图宣传单中可视化单点

从矩阵创建系数图