在 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)

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

解决方法

这里是如何在 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"
,

const [posts,setPosts] = useState([]) useEffect(() => { axios .get("https://~~~firebase url~~~/items.json") .then(response => setPosts(response.data)); },[]) return ( <div className="App"> <header className="App-header"> <p> {JSON.stringify(posts)} </p> </header> </div> ); } export default App; 是矢量化函数,因此您不需要循环或任何应用函数。

toupper