【发布时间】:2016-10-18 15:20:38
【问题描述】:
目前,这段代码可以做我想做的事情,其中 dx$res 是一个向量,根据 dx$x0 的值从 dx$val1 或 dx$val2 中选择值。
x0<-c(1,2,1,2,2,1)
val1<-c(8,6,4,5,3,2)
val2<-c(4,8,6,7,9,5)
dx<-data.frame(x0,val1,val2)
dx$res<-(dx$x0==1)*dx$val1+(dx$x0==2)*dx$val2
我想知道是否有更优雅的方法可以做到这一点,比如使用 apply 函数。
【问题讨论】:
-
我很想使用
with:dx$res <- with(dx, (x0 == 1) * val1 + (x0 == 2) * val2)。它可能更容易阅读。还有一个ifelse解决方案,但我更喜欢你使用的方法。 -
感谢您的提议。
标签: r