我试图创建一个新的变量(var5),它根据因子变量(var4)的级别从 Dataframe 中的其他数值变量(var1、var2或var3)中获取值。
variables=data.frame(var1=c(2,3,4,5), var2=c(20,30,40,50), var3=c(200,300,400,500), var4=c('var1','var2','var3','var1'))
变数
var1 var2 var3 var4
1 2 20 200 var1
2 3 30 300 var2
3 4 40 400 var3
4 5 50 500 var1
预期结果如下:
var1 var2 var3 var4 var5
1 2 20 200 var1 2
2 3 30 300 var2 30
3 4 40 400 var3 400
4 5 50 500 var1 5
我找不到解决的办法。
4条答案
按热度按时间r8uurelv1#
与sapply(谢谢你安德鲁:-))
这是动态工作的(如果有100个不同的列,
case_when
可能会很麻烦)。eoigrqb62#
我相信有人可以想出更好的东西,但
dplyr::case_when()
将完成这项工作:kr98yfug3#
使用
data.table
:xjreopfe4#
创建于2019-06-20由reprex package(v0.3.0)参考mutate specific column by evaluating lookup cell value