问题描述
我想创建一个函数 (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