Как заполнить столбец на основе значений и условий из другого столбца - PullRequest
0 голосов
/ 09 октября 2019

У меня есть значения в столбце "WT", но некоторые значения необходимо исправить, вычтя 0,01. Я хочу заполнить новый столбец "FinalWT" в моем фрейме данных (df) исправленными значениями, где Office равен "1", и равными значениями, где Office равен "2".

что у меня есть:

Office  WT        
1       0.014   
2       0.456     
2       0.005     
1       0.051     

Чего я хочу достичь

Office  WT        FinalWT
1       0.014     0.004
2       0.456     0.456
2       0.005     0.005
1       0.051     0.041

Любая помощь очень ценится. Спасибо!

1 Ответ

0 голосов
/ 09 октября 2019

Мы можем умножить 0,01 с помощью логического выражения, чтобы выходное значение было 0,01 для ИСТИНА и 0 в противном случае и вычесть из 'WT'

library(dplyr)
df1 %>%
      mutate(FinalWT = WT - 0.01 * (Office == 1))
#  Office    WT FinalWT
#1      1 0.014   0.004
#2      2 0.456   0.456
#3      2 0.005   0.005
#4      1 0.051   0.041

Или в base r

df1$FinalWT  <- with(df1, WT - 0.01 * (Office == 1))

данные

df1 <- structure(list(Office = c(1L, 2L, 2L, 1L), WT = c(0.014, 0.456, 
0.005, 0.051)), class = "data.frame", row.names = c(NA, -4L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...