如何摆脱`deparse(substitute())`中的数据框名称?

ŁukaszDeryło

就像有问题一样:如何摆脱数据框中的名称deparse(substitute())

例如,创建一个简单的函数:

foo<-function(x){
  print(
    paste(
      'This is called', deparse(substitute(x))
      )
    )
}

向其馈送矢量可提供所需的行为:

test<-1:3
foo(test)
[1] "This is called test"

但是,当我传递数据框的列时,它包括数据框名称:

> df<-data.frame(ones=c(1,1,1), twos=c(2,2,2))
> foo(df$ones)
[1] "This is called df$ones"

如何df$在输出中摆脱这种情况"This is called ones"(希望不使用正则表达式)?

G.格洛腾迪克

这样做的方法似乎不是将其放入函数中,而是使用在问题中出现的函数:

with(df, foo(ones))

当然,可以修改该函数以删除不超过$的所有内容,但是还有其他指定方法,例如DF[["ones"]],这一行对其进行修复似乎陷入了寻找必须修复的新情况的无穷无尽的漏洞。

# not recommended
foo2 <- function(x) {
  Name <- sub(".*\\$", "", deparse(substitute(x)))
  print( paste('This is called', Name) )      
}
DF <- data.frame(ones = 5:6)
foo2(DF$ones)
## [1] "This is called ones"

真正的问题是的设计foolm涉及列名和数据帧的函数使用将它们分开的调用:

foo3 <- function(x, data = parent.frame()) {
  Name <- deparse(substitute(x))
  print( paste('This is called', Name ))
  data[[Name]]
}

ones <- 3:4
foo3(ones)
## [1] "This is called ones"
## [1] 3 4

DF <- data.frame(ones = 5:6)
foo3(ones, DF)
## [1] "This is called ones"
## [1] 5 6

或者另一种设计是将列指定为公式:

foo4 <- function(formula, data = parent.frame()) {
  Name <- all.vars(formula)[1]
  print( paste('This is called', Name ))
  data[[Name]]
}
DF <- data.frame(ones = 5:6)
foo4(~ ones, DF)
## [1] "This is called ones"
## [1] 5 6

ones <- 4:5
foo4(~ ones)
## [1] "This is called ones"
## [1] 4 5

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何摆脱列/轴名称的名称显示在数据框熊猫python中的/ above索引顶部

来自分类Dev

如何获取列表中数据框的名称

来自分类Dev

从熊猫数据框中摆脱NaT值

来自分类Dev

如何从数据框的索引中获取行的名称?

来自分类Dev

如何按行中的名称对数据框进行排序?

来自分类Dev

如何按名称访问列表中的数据框

来自分类Dev

如何从列表列表编辑数据框中的行名称?

来自分类Dev

如何摆脱数据框子组中的元组?

来自分类Dev

如何将存储在列表中的数据框的名称放入每个数据框的列名称中?

来自分类Dev

如何摆脱Xcode中的“未知类型名称'__declspec'”错误

来自分类Dev

XSL如何从HTML输出中摆脱xmlns名称空间声明?

来自分类Dev

如何摆脱输入框中的取消按钮

来自分类Dev

我如何摆脱Excel工作表中的这个奇怪的框

来自分类Dev

如何从熊猫数据框中的团队名称中提取带有rege的城市名称

来自分类Dev

更改数据框列表中的名称

来自分类Dev

清理数据框中的基因名称

来自分类Dev

在Julia中获取数据框的名称

来自分类Dev

更改数据框中的观测名称

来自分类Dev

从数据框列表中删除行名称?

来自分类Dev

R如何从数据框中的长列名称中删除字符

来自分类Dev

如何在R中按名称删除数据框中的行

来自分类Dev

如何将ID与R中其他数据框中的名称匹配

来自分类Dev

在R中,如何修改给定字符串名称的列表中的数据框列

来自分类Dev

如何使用函数调用中的参数作为R中数据框的名称?

来自分类Dev

如何根据列名称中包含的字符串合并数据框中的列?

来自分类Dev

如何根据条件更改列表中多个数据框中的列名称?

来自分类Dev

如何在数据框中添加名称并更改R中的特定单元格

来自分类Dev

如何在R中按名称删除数据框中的行

来自分类Dev

如何将字符向量的名称列添加到 R 中的数据框中

Related 相关文章

  1. 1

    如何摆脱列/轴名称的名称显示在数据框熊猫python中的/ above索引顶部

  2. 2

    如何获取列表中数据框的名称

  3. 3

    从熊猫数据框中摆脱NaT值

  4. 4

    如何从数据框的索引中获取行的名称?

  5. 5

    如何按行中的名称对数据框进行排序?

  6. 6

    如何按名称访问列表中的数据框

  7. 7

    如何从列表列表编辑数据框中的行名称?

  8. 8

    如何摆脱数据框子组中的元组?

  9. 9

    如何将存储在列表中的数据框的名称放入每个数据框的列名称中?

  10. 10

    如何摆脱Xcode中的“未知类型名称'__declspec'”错误

  11. 11

    XSL如何从HTML输出中摆脱xmlns名称空间声明?

  12. 12

    如何摆脱输入框中的取消按钮

  13. 13

    我如何摆脱Excel工作表中的这个奇怪的框

  14. 14

    如何从熊猫数据框中的团队名称中提取带有rege的城市名称

  15. 15

    更改数据框列表中的名称

  16. 16

    清理数据框中的基因名称

  17. 17

    在Julia中获取数据框的名称

  18. 18

    更改数据框中的观测名称

  19. 19

    从数据框列表中删除行名称?

  20. 20

    R如何从数据框中的长列名称中删除字符

  21. 21

    如何在R中按名称删除数据框中的行

  22. 22

    如何将ID与R中其他数据框中的名称匹配

  23. 23

    在R中,如何修改给定字符串名称的列表中的数据框列

  24. 24

    如何使用函数调用中的参数作为R中数据框的名称?

  25. 25

    如何根据列名称中包含的字符串合并数据框中的列?

  26. 26

    如何根据条件更改列表中多个数据框中的列名称?

  27. 27

    如何在数据框中添加名称并更改R中的特定单元格

  28. 28

    如何在R中按名称删除数据框中的行

  29. 29

    如何将字符向量的名称列添加到 R 中的数据框中

热门标签

归档