Добавить NA на основе предыдущего столбца - PullRequest
0 голосов
/ 07 декабря 2018

мой фрейм данных выглядит следующим образом:

Total   Taxes   VAT Debit   Credit  Department  Personal    Car
17.5    0.5     no    x       NA       yes         no       yes
72.5    0.5     no    x       NA       yes         yes      no
1.4      NA     no    x       NA       yes         no       yes
4.5      NA     no    x       NA       yes         no       yes
1.5      NA     no    x       NA       yes         no       yes

, и я хочу, чтобы в department, personal и car мой вывод отображал NA.NA основан на столбце taxes.Например, если в taxes есть NA, то в следующих столбцах должен быть NA, как в примере ниже:

Total   Taxes   VAT Debit   Credit  Department  Personal    Car
17.5     0.5    no    x      NA         yes        no       yes
72.5     0.5    no    x      NA         yes        yes      no
1.4      NA     no    NA     NA         NA         NA       NA
4.5      NA     no    NA     NA         NA         NA       NA
1.5      NA     no    NA     NA         NA         NA       NA

Есть ли решение в BaseR?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

dplyr путь будет

library(dplyr)
df %>%
   mutate_at(vars(Department:Car), funs(replace(., is.na(Taxes), NA)))

# Total Taxes VAT Debit Credit Department Personal  Car
#1  17.5   0.5  no     x     NA        yes       no  yes
#2  72.5   0.5  no     x     NA        yes      yes   no
#3   1.4    NA  no     x     NA       <NA>     <NA> <NA>
#4   4.5    NA  no     x     NA       <NA>     <NA> <NA>
#5   1.5    NA  no     x     NA       <NA>     <NA> <NA>
0 голосов
/ 07 декабря 2018

Создайте индекс, основанный на «Налогах», и присвойте столбцы интереса NA в base R

i1 <- is.na(df1$Taxes)
colsOfInterest <- c('Debit', 'Department', 'Personal', 'Car')
df1[i1, colsOfInterest] <- NA
df1
#  Total Taxes VAT Debit Credit Department Personal  Car
#1  17.5   0.5  no     x     NA        yes       no  yes
#2  72.5   0.5  no     x     NA        yes      yes   no
#3   1.4    NA  no  <NA>     NA       <NA>     <NA> <NA>
#4   4.5    NA  no  <NA>     NA       <NA>     <NA> <NA>
#5   1.5    NA  no  <NA>     NA       <NA>     <NA> <NA>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...