R 根据向量中的元素应用函数 [英] R Apply function depending on element in a vector

查看:24
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆