R语言 ggplot处理引用变量

y1aodyip  于 2023-02-27  发布在  其他
关注(0)|答案(2)|浏览(144)

在对 Dataframe 执行操作后生成ggplot()图时,我遇到了一个意外问题。我提供了一个说明性示例:

func <- function(){  
  library(ggplot2)
  df <- read.table(....)

  # Perform operation on df to retrieve column of interest index/number
  column.index <- regexpr(...)   
  # Now need to find variable name for this column
  var.name <- names(df)[column.index]
  # ...also need to mutate data in this column
  df[,column.index] <- df[,column.index] * 10

  # Generate plot
  plot <- ggplot(data, aes(x=var.name))+geom_bar()
  print(plot)
}

这里ggplot将抛出一个错误,因为var.name被引用,例如,“mpg”。有什么想法如何解决这个问题?
编辑:从this question测试解决方案无效。

mlnl4t2r

mlnl4t2r1#

使用aes_string,它允许您为变量传递字符串名称。

nhjlsmyf

nhjlsmyf2#

你可以使用“dplyr”包将www.example.com列重命名var.name为通用名称(x),然后在x上绘图:

# also need to mutate data in this column
df[,column.index] <- df[,column.index] * 10
# ***NEW*** re-name column to generic name
df <- rename_(df, .dots=setNames(list(var.name), 'x'))
# generate plot
plot <- ggplot(df, aes(x=x))+geom_bar()

相关问题