首页 > 解决方案 > 在 R 中创建一个仅将向量的前 n 个元素大写的函数

问题描述

我想创建一个函数 (v,n),其中 v 是字符串值的向量,n 是整数。此函数应仅将向量的前 n 个元素大写。如果 n 大于length(v),它应该大写向量中的所有元素。

因此,如果我有:v = c("a","b","c","d")并且 n = 3,则该函数应返回:

[1]   ("A", "B", "C", "d")

到目前为止,我有这个:

function(v, n){
  if(n <= length(v))
  {i = seq_len(n)
  v[i]= toupper(v[i])}
  return(v)} 

但是当我尝试将其应用于向量时(使用 sapply):

test = sapply(v, function, n=3)

没发生什么事。向量中的所有元素都没有大写

标签: rfunctionvectortoupper

解决方案


以下是如何在 R 中定义函数以及如何调用它。

my_toupper <- function(v, n){
  if(n <= length(v)) {
    i = seq_len(n)
    v[i]= toupper(v[i])
  }
  return(v)
} 


my_toupper(v = c("a","b","c","d"), n = 3)

上面的命令返回这个结果

[1] "A" "B" "C" "d"

推荐阅读