使用tapply获取新列的结果



我有一个R数据帧温度,包含以下内容:

Serial N         year         current    Average 
   B              10            14          15
   C              12            13          12
   D              40            20          20
   .               .             .           .

我想根据Average列的每一行添加一个新列。我尝试使用tapply如下:

temp$new_set=tapply(temp$Average, function(x) { 2 * pnorm(x * sqrt(2)) - 1} )

但我得到以下错误:

r error in unique.default(x) unique() applies only to vectors

如何将该函数应用于temp$Average的每个元素??

看起来您想要为Average的每个值计算函数。如果是这样的话,我认为你根本不需要使用tapply。沿着这些路线的东西会起作用:

temp$new_set <- (2 * pnorm(temp$Average * sqrt(2))) - 1

也就是说,您可以直接传递列temp$Average作为函数的参数,并获得可以用作新列的结果向量。

最新更新