【问题标题】:Multiple operators in a string字符串中的多个运算符
【发布时间】:2014-08-15 09:40:17
【问题描述】:

我的列表中有一些运算符

[[1]]
[1] "*"

[[2]]
[1] "-"

[[3]]
[1] "+"

[[4]]
[1] "/"

[[5]]
[1] "^"

我想在两个相同维度的两个数据集之间进行操作。比如dataset1*dataset2、dataset1-dataset2等。是否可以使用list中的字符串?

【问题讨论】:

  • 请提供示例数据集。
  • 对不起,不知道规则。
  • 这与规则无关。这是关于有一个明确的问题。如您所见,您得到了不同的答案,因为人们不知道您的数据集长什么样。

标签: r


【解决方案1】:

是的,这是一个例子:

ops <- list("+", "-")
x <- y <- 1:10
lapply(ops, function(op) eval(parse(text = paste0("x", op, "y"))))
# [[1]]
# [1]  2  4  6  8 10 12 14 16 18 20
# 
# [[2]]
# [1] 0 0 0 0 0 0 0 0 0 0

【讨论】:

  • lapply(ops, do.call, args=list(x,y)) 应该优于 eval(parse())
  • 感谢@Roland,确实更优雅。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2013-04-09
  • 2011-06-27
  • 1970-01-01
相关资源
最近更新 更多