如何在R语言中创建函数:接收n维向量并返回(x₁,x₂²,…,xₙⁿ)
在R语言中实现向量幂变换函数
要实现输入n维向量、返回(x₁, x₂², …, xₙⁿ)的函数,利用R的向量化特性可以简洁完成,无需显式循环。
核心实现
power_transform <- function(vec) { vec ^ seq_along(vec) }
代码解释
seq_along(vec)会生成与输入向量长度一致的序列,元素从1开始递增(比如输入长度为4的向量,生成c(1,2,3,4))。- R的向量运算支持逐元素操作,
vec ^ seq_along(vec)会将向量第i个元素与序列第i个元素做幂运算,直接得到目标变换后的向量。
测试示例
# 测试长度为4的向量 test_vec <- c(2, 3, 4, 5) power_transform(test_vec) # 输出结果:[1] 2 9 64 625 # 测试长度为1的向量 power_transform(c(10)) # 输出结果:[1] 10 # 测试空向量 power_transform(c()) # 输出结果:numeric(0)
增强健壮性(可选)
如果需要处理非数值输入的情况,可以添加类型检查:
power_transform <- function(vec) { if (!is.numeric(vec)) { stop("输入必须是数值型向量") } vec ^ seq_along(vec) }
内容的提问来源于stack exchange,提问作者Ειρήνη Θεοδωροπούλου
相关产品推荐
相关产品推荐

