Создание столбца путем проверки ячеек NA в нескольких столбцах R - PullRequest
0 голосов
/ 08 марта 2020

У меня есть набор данных со многими пропущенными значениями:

              Q1            Q2            Q3            Q4
1                                                         
2                                                         
3                                                         
4                                                         
5                                                         
6                                                         
7                                                         
8                                             previous job
9                                                         
10                 current job                            
11                                                        
12                                                        
13                              previous job              
14                                                        
15                                                        
16                                                        
17                                                        
18                 current job                            
19  previous job                                          
20                                                        
21  previous job                                          
22                               current job              
23   current job                                          
24                               current job              
25                              previous job              
26                                                        
27   current job                                          
28                                                        
29                 current job                            
30  previous job                                        

Я хотел бы создать столбец и проверять строку за строкой, если Q2, Q3 или Q4 пустые или нет (не имеет значения, что написано). Если хотя бы один из них не пуст, я хотел бы написать «да», в противном случае «нет». Как мне это сделать?

1 Ответ

1 голос
/ 08 марта 2020

Мы можем использовать rowSums, чтобы создать логический вектор, основанный на вхождении пробела ("") или NA (is.na), проверить, является ли сумма по строкам больше 0, и если да, ' да ', или иначе' нет '

df1$flag <- ifelse(rowSums(df1 == ""|is.na(df1)) > 0, "yes", "no")

Если мы хотим выбрать определенные столбцы, используйте индексирование позиции (2: 4 - для столбцов 2–4) или имена его столбцов

df1$flag <- ifelse(rowSums(df1[2:4] == ""|is.na(df1[2:4])) > 0, "yes", "no")

Или другой вариант - l oop над столбцами и применить логическое условие

c("no", "yes")[1 + (Reduce(`+`, lapply(df1, function(x) x == ""| is.na(x))) > 0)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...