创建一个函数,命名基于R中的函数创建的对象

时间:2018-04-19 23:34:23

标签: r function naming

我有一个关于创建一个创建ggplots的函数的问题。我想创建自己的函数来快速绘制多个数据框中的值,而不是每次填写每个参数时编写一个完整的ggplot。我想要做的是输入数据框名称的向量,让函数创建图形并将每个图形保存为具有不同名称的新对象。我的想法的例子是......

myfunction(c(testtype1, testtype2, testtype3)) 

我希望能够做一些像

这样的事情
plot1 <- myfunction(testtype1)
plot2 <- myfunction(testtype2)
plot3 <- myfunction (testtype3)

并具有创建对象plot1,plot2,plot3的功能。截至目前,我只能做

import { OnDestroy } from '@angular/core';
import { Subscription } from 'rxjs/Subscription';
import { Subject } from 'rxjs/Subject';
import { Observable } from 'rxjs/Observable';
import { PartialObserver } from 'rxjs/Observer';

export abstract class InfiniteSubscriberComponent implements OnDestroy {
  private onDestroySource: Subject<any> = new Subject();

  constructor() {}

  subscribe(observable: Observable<any>): Subscription;

  subscribe(
    observable: Observable<any>,
    observer: PartialObserver<any>
  ): Subscription;

  subscribe(
    observable: Observable<any>,
    next?: (value: any) => void,
    error?: (error: any) => void,
    complete?: () => void
  ): Subscription;

  subscribe(observable: Observable<any>, ...subscribeArgs): Subscription {
    return observable
      .takeUntil(this.onDestroySource)
      .subscribe(...subscribeArgs);
  }

  ngOnDestroy() {
    this.onDestroySource.next();
    this.onDestroySource.complete();
  }
}

我不想一遍又一遍地打字,特别是如果我有很多测试类型的话。是否有一种方法可以修改该函数以使用该函数根据某个公式命名对象?

1 个答案:

答案 0 :(得分:0)

通过这种方式,您可以提供任意数量的(适当的)数据框,l_my_fun将返回包含图表的列表。

l_my_fun <- function(x, ...) {
  l <- list(x, ...)
  ps <- lapply(l, myfunction)
  ps
}

out <- l_my_fun(testtype1, testtype2, testtype3)

例如,现在以

的形式访问第二个图
out[[2]]

enter image description here