我怎么能乘以具体数字向量使用R
问题描述:
我有任务乘以向量中的数字,但只有那些可以除以3模0我想出了如何用不同的数字替换向量中的某些元素,但它只有当我用某个数字替换时才有效。我无法在这里找到任何答案http://www.r-tutor.com/r-introduction/vector甚至在这个网站上。每个人只能将值提取到另一个向量。我怎么能乘以具体数字向量使用R
x <- c(1,1,2,2,2,3,3)
x[x%%2==0] = 5
# [1] 1 1 5 5 5 3 3
为什么这不起作用?
x[x%%3==0] = x*3
我希望得到这样的:
c(1,1,5,5,5,9,9)
答
分配矢量不在lhs
和赋值运算符的rhs
相同。
length(x*3)
#[1] 7
length(x[x%%3 ==0])
#[1] 2
我们需要做
x[x%%3==0] <- x[x%%3==0]*3
x
#[1] 1 1 5 5 5 9 9
代替重复逻辑矢量,可以创建一个对象,然后执行替代
i1 <- x%%3 == 0
x[i1] <- x[i1]*3
在第一分配,只有一个元素,它被分配来代替由逻辑条件返回的值被满足
另一种选择是
pmax(x, x*(!x%%3)*3)
#[1] 1 1 5 5 5 9 9
你的RHS不相同的长度,即LHS'X [X %% 3 == 0] akrun