我有一些值的位置我希望在两个值的向量中更改if 积极的或消极的。
library(extremevalues)
x<-c(-1,3,4,5,-7,-6,1,-3,0,0,90,8,6,7,25,3,4,-2,1,3,-5,4,6,-8,5,-7,4,-5,5,44,6,2,3,-4,5,-6,1,2,
-35,4,4,-3,2,-1,2,4,-5,8,-35)
g<-getOutliers(x, method="I")
#location values in the vector
s<-c(g$iRight,g$iLeft)
s
[1] 11 15 30 39 49
#Values to change depending on the sign of the element in x. If positive then a if
negative then b
a<-mean(x > 0)
a
[1] 0.6326531
b<-mean(x < 0)
b
[1] 0.3265306
我知道如何使用replace函数逐个替换值。但是,如果另一个向量x将与不同的值一起使用,则位置和值的数量可能会发生变化,您将如何构造一个表达式来指示在x中的向量s给出的位置中更改x的一些元素的值和a的值b取决于原始值是正还是负。 (如果正a将替换x中的元素,如果负b将替换x中的元素
谢谢
答案 0 :(得分:1)
x[s] <- ifelse(x[s] < 0, mean(x < 0), mean(x > 0))