2015-05-27 15 views
7

Tôi muốn chạy vòng lặp chuyển đổi và có thể phù hợp với NA, ví dụ:trận đấu NA trong switch() vòng lặp

switch(var, match1 = do something, match3 = do something) 

Làm thế nào có thể làm điều đó nếu varNA như vậy:

switch(var, match1 = do something, match3 = do something, NA = do something) 

Tôi cũng đã thử is.na() thay vì NA và nó không hoạt động.

+4

Hãy thử '' NA' 'thay vì – konvas

+0

Nó hoạt động với dấu nháy đơn, cảm ơn! – ramses

+0

@konvas Bạn nên làm cho câu trả lời đó. – nrussell

Trả lời

5

Trong tình huống này, NA đã được thoát sử dụng backticks (hoặc dấu ngoặc kép)

switch(var, match1 = do something, `NA` = do something) 

Một điều cần lưu ý là bạn không thể switch giá trị NA trực tiếp. Ví dụ:

switch(NA, `NA` = 1) 

không hoạt động và bạn nên sử dụng ví dụ:

switch(as.character(NA), `NA` = 1) 
# [1] 1 

thay thế. Có thể tốt hơn nếu sử dụng var[is.na(var)] <- ...

Các vấn đề liên quan