Назначить отрицательный знак каждому значению в векторе (в R)? - PullRequest
0 голосов
/ 04 июля 2018

Я хочу это:

V <- c(2, 3, 4, 5, 6)
V <- as.data.frame(V)

Чтобы выглядеть так:

[1] -2 -3 -4 -5 -6

По сути, обратная функция abs (). Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Я считаю, что если вы заранее не знаете, являются ли все значения вектора положительными, то вам следует сделать что-то вроде приведенного ниже кода.

V <- c(2, 3, 4, 5, 6)
W <- c(-2, -3, -4, -5, -6)
X <- c(2, -3, 4, -5, 6)

all.neg <- function(x) -1*abs(x)

Давайте попробуем.

all.neg(V)
#[1] -2 -3 -4 -5 -6

all.neg(W)
#[1] -2 -3 -4 -5 -6

all.neg(X)
#[1] -2 -3 -4 -5 -6

Если вы хотите применить его к data.frame, сделайте это обычным способом.

dat <- data.frame(V, W, X)

dat[] <- lapply(dat, all.neg)
dat
#   V  W  X
#1 -2 -2 -2
#2 -3 -3 -3
#3 -4 -4 -4
#4 -5 -5 -5
#5 -6 -6 -6
0 голосов
/ 04 июля 2018

Вы могли бы сделать

 V * -1

или

-V # first mentioned in the comments by @RHertel

или что-нибудь в этом роде. С присваиванием (обновлением объекта) это выглядит так:

v <- v * -1 # or -V

Вы также можете использовать = для назначения, но это идет вразрез с руководствами по стилю.

[1] -2 -3 -4 -5 -6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...