R - 拆分数据帧而不删除NA值

ode*_*hem 1 split r dataframe na

如果我有一个df:

letter    body_part
    a     head
    b     head
    c     NA
    d     NA
    e     left_foot
Run Code Online (Sandbox Code Playgroud)

而且我想把它分成2个dfs ......一个只有body_part - "head"而另一个只有其他东西.即

list < - split(df,df $ body_part =='head')

我可以不丢弃NA行吗?(我知道如果我用字符串填充NA,我可以做到,但有没有办法避免这一步?)

the*_*ail 5

来自?`%in%`:

'%in%'永远不会返回'NA'使它在'if'条件下特别有用.

# just to show how the `==` comparison compares  
> df$s_col <- df$body_part == 'head'

> split(df, df$body_part %in% 'head')
$`FALSE`
  letter body_part s_col
3      c      <NA>    NA
4      d      <NA>    NA
5      e left_foot FALSE

$`TRUE`
  letter body_part s_col
1      a      head  TRUE
2      b      head  TRUE
Run Code Online (Sandbox Code Playgroud)