Sapply为每行中的新Var返回相同的值
Sapply为每行中的新Var返回相同的值,r,R,Var是数据帧中的一个度量,包含105行:(零个N)所有唯一值 我试图使用sapply通过以下函数运行df$var来创建一个新变量: df$newVar<- sapply(df$var.g, function(x) .01**(.95**(x/max(x)*100))) df$newVar您是否尝试过直接应用于向量? R是矢量化的,这种方式非常有效 custom_func[7]0.88070937 0.92676420 0.95548367 0.97310329 直接试穿df$var
Var
是数据帧中的一个度量,包含105行:(零个N)所有唯一值
我试图使用sapply
通过以下函数运行df$var
来创建一个新变量:
df$newVar<- sapply(df$var.g, function(x) .01**(.95**(x/max(x)*100)))
df$newVar您是否尝试过直接应用于向量?
R是矢量化的,这种方式非常有效
custom_func[7]0.88070937 0.92676420 0.95548367 0.97310329
直接试穿df$var.g
df$newVar自定义函数工作正常,谢谢!!!!如果你不介意的话,你能提供一些关于Sappy为什么不在这里工作的细节吗?使用Sappy,你可以一个接一个地迭代向量中的值。因此max(x)=x
因为x
的长度为1。因此x/max(x)=1
,您可以得到custom_func(1)
(0.97)的结果,R可以很好地矢量化,并且大多数函数可以应用于向量。甚至还有一个Vectorise
函数来帮助矢量化一个非矢量化函数。谢谢,非常有用/有教育意义!