R 根据向量中的元素应用函数 [英] R Apply function depending on element in a vector
本文介绍了R 根据向量中的元素应用函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何根据向量中的元素选择函数?
How can I choose a function, depending on the element in a vector?
例如向量 (a,b,a,b,b)
E.g. vector (a,b,a,b,b)
元素 a => x + 2
元素 b => y * 3
element a => x + 2
element b => y * 3
我正在考虑一个 switch 语句,但不知道这是否是好的 R 风格.
I am thinking about a switch statement, but don't know whether this is good R style or not.
推荐答案
我不知道如何添加或乘以一个字符元素,但也许这会让你开始.
I don't know how to add or multiply a character element, but maybe this will get you started.
set.seed(42)
vec1 = c('a','b','a','b','b')
vec2 = runif(length(vec1))
vec3 = sapply(1:length(vec1), function(x){
if (vec1[x] == 'a'){
vec2[x] + 3
}else{
vec2[x] * 3
}
})
编辑:更快的方法:
vec3 = ifelse(vec1=='a',vec2 + 3, vec2 * 3)
这篇关于R 根据向量中的元素应用函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文