【发布时间】:2012-09-06 12:52:25
【问题描述】:
我想从 apply() 函数返回多个值并将它们放在 R 中的单独列中,但我不断收到错误。我想做的是:
experiments$result1, experiments$result2, experiments$result3 <- apply(experiments, 1,
function(row)
#Some analysis here
#return x, y, and z for column result1, result2, and result3
x, y, z
)
也许这是解决问题的错误方法。实验是一个包含多列数据的数据框。我想添加作为每一行分析结果的列,但我不知道如何在没有循环的情况下执行此操作,这对于 R 来说不是惯用的。提前感谢您的帮助。
所以这里有一些更准确的代码。
experiments$result1, experiments$result2, experiments$result3 <- apply(experiments, 1, function(row)
x <- row["startingTemp"]*2
y <- row["startingTemp"]*3
z <- row["startingTemp"]*4
return (list(x, y, z))
)
“startingTemp”字段是我的“实验”数据框中的列之一。我收到“闭包”类型不是子集且找不到对象“z”的错误。
【问题讨论】:
-
该函数为每个实验返回一个列表。