【问题标题】:How to use a different label (variable name) in each iteration (variable)?如何在每次迭代(变量)中使用不同的标签(变量名)?
【发布时间】:2016-10-24 15:30:05
【问题描述】:

我有一个包含 40 个变量的数据框 data,我有一个函数 func,它可以绘制条形图等。

func <- function(var, arg1, arg2){
  # ...
  barplot(table(arg1, arg2)[2,], 
          ylab = "Frequency",
          xlab = names(var))
  # ...
}

我想将此函数应用于我的数据框,并使用每个变量的名称(如每个条形图的 xlab)为 40 个变量中的每一个获取一个条形图。我已经使用 lapply 来执行此操作,但我无法将每个变量的名称显示为 xlab

lapply(data, func, arg1, arg2))

【问题讨论】:

  • 不要lapply 超过data 而是超过names(data)
  • @Axeman 虽然我没有展示这一点,但在我的函数中,除了变量名称之外,我还需要数据信息,所以如果我 lapply 超过 names(data) 我想我不能使用 @ 987654328@信息。
  • 在函数顶部使用 subs &lt;- data[[arg]] 或类似名称。

标签: r bar-chart apply var lapply


【解决方案1】:

我相信您正在寻找mapply,它可用于循环多个对象,其中索引在对象之间排列。

func <- function(x, name) plot(x, main = name)

mapply(FUN = func, x = iris, name = names(iris))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-26
    • 2023-04-08
    • 2016-08-19
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 2020-11-28
    相关资源
    最近更新 更多