我试图创建一个函数(v,n),其中v是字母/单词的向量,n是整数。此函数应返回相同的向量,但以大写字母中的"n“开头元素返回。
到目前为止,我已经做了这个:
capital <- function(v, n){
c <- v[n]
return (toupper(c))
}但是这个函数只返回大写字母中的"n“元素,而不是所有第一个"n”元素。而且它也不返回链的其余部分。
所以,如果我们有v <- c("alpha","bravo","charlie","delta")和n <- 2。我的函数返回:
[1] "BRAVO"但我希望它能回来:
[1] "ALPHA" "BRAVO" "charlie" "delta"有什么帮助吗?
发布于 2020-12-20 18:28:23
一种选择是根据'n‘的序列对vector进行子集,并通过应用toUpper重新分配
i <- seq_len(n)
v[i] <- toupper(v[i])-output
v
#[1] "ALPHA" "BRAVO" "charlie" "delta" 在OP的函数中,return不根据索引分配
capital <- function(v, n){
stopifnot(n <= length(v))
i <- seq_len(n) # // create a sequence from n
v[i] <- toupper(v[i]) # // apply toupper based on the index
return(v) # // return the updated vector
}-output
capital(v, n)
#[1] "ALPHA" "BRAVO" "charlie" "delta" 发布于 2020-12-20 18:29:44
我们可以尝试:
capital <- function(v, n){
c1 <- v[1:n]
c2 <- toupper(c1)
c3 <- c(c2,v[(n+1):length(v)])
return (c3)
}
capital(v = c("alpha", "bravo", "charlie", "delta"),n=2 )一个完整的解释是:
vector.
c1中我们选择单词的数量,c2中将它们大写,c3中我们与原始的c1合并。H 212G 213https://stackoverflow.com/questions/65383348
复制相似问题