我是R语言的初学者,需要将以下向量的奇数(两个)相乘:
x<-c(1:20)
我尝试过:
x2<-c[lapply(x,"%%",2*2)==1]
但是出了点问题。
答案 0 :(得分:3)
对于像您的示例一样的由连续整数组成的矢量,我们可以使用循环
x * c(2,1)
##[1] 2 2 6 4 10 6 14 8 18 10 22 12 26 14 30 16 34 18 38 20
更一般地说,我们可以做到
x * (x%%2 + 1L)
答案 1 :(得分:2)
使用基数r,我们可以尝试
ifelse(x %% 2 != 0, x * 2, x)
> [1] 2 2 6 4 10 6 14 8 18 10 22 12 26 14 30 16 34 18 38 20
答案 2 :(得分:2)
我们可以找到奇数的索引并将它们乘以2。
inds <- as.logical(x %% 2)
x[inds] <- x[inds] * 2
x
#[1] 2 2 6 4 10 6 14 8 18 10 22 12 26 14 30 16 34 18 38 20