仅包含 2 个向量的部分分量的运算

Operations with only some of the components of 2 vectors

我想知道是否有人可以帮助我解决以下问题: 我有 2 个向量,比方说:

A<-c(10,20,-10,6,-15,5)
B<-1:length(A)

由于 A 可能有更多或更少的组件,我想做 A^B 但只有 A 的正值,所以我会这样:

C<-(10^1,20^2,6^4,5^6)=> (10,400,1296,15625)

我已经尝试使用“for”和变量“i”来处理向量的长度以及数据帧,但通常它会对所有组件进行操作,而不仅仅是对 psoitive一个或创建一个新向量并执行 D<-(10^1,20^2,6^3,5^4) 而这不是我需要的。

先做子集如何:

A[sign(A)==1]
#[1] 10 20  6  5
B[sign(A)==1]
#[1] 1 2 4 6

A[sign(A)==1]^B[sign(A)==1]
#[1]    10   400  1296 15625

你也可以在之后进行子集化:

(A^B)[sign(A)==1]
#[1]    10   400  1296 15625

尝试subset

> subset(A^B, A > 0)
[1]    10   400  1296 15625