Условное подмножество, манипулирование и замена - PullRequest
0 голосов
/ 08 ноября 2019

Исходя из предыдущего вопроса здесь Я извлек следующие данные.frame

DF <- data.frame(A =c("One","Two","Three","Four","Five"),
                 B=c(1,1,2,2,3),
                 D=c(10,2,3,-5,5))

subset(DF, B %in% c(1,3))
     A B  D
1  One 1 10
2  Two 1  2
5 Five 3  5

, но теперь я хочу (например) умножить числа на (скажем) пять изамените их в исходном data.frame

Следующий код

subset(DF, B %in% c(1,3))[,2:3] * 5
   B  D
1  5 50
2  5 10
5 15 25

дает мне числа, которые я хочу, но как мне вернуть их к

      A B  D
1   One 5 50
2   Two 5  10
3 Three 2  3
4  Four 2 -5
5  Five 15 25

ответ смотрит мне в лицо (т.е. номера индексов ... но как мне к ним добраться)?

1 Ответ

3 голосов
/ 08 ноября 2019

Вы можете сделать

DF[DF$B %in% c(1, 3), 2:3] <- DF[DF$B %in% c(1, 3), 2:3] * 5

DF
#      A  B  D
#1   One  5 50
#2   Two  5 10
#3 Three  2  3
#4  Four  2 -5
#5  Five 15 25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...