可以使用 subset 函数,或者 dplyr 包的 filter 函数,具体写法如下:

library(dplyr)

test_df <- data.frame(
    name = c('John', 'Lucy', 'Lily', 'Sam', 'Jack'),
    job = c('Enginner', 'Unknown', 'Unknown', 'Data Analyst', 'Enginner')
)
test_df

# subset 函数
new_test_df_subset <- subset(test_df, job != 'Unknown')
new_test_df_subset

# filter 函数
new_test_df_filter <- test_df %>% 
    filter(job != 'Unknown')
new_test_df_filter

运行结果如下:

 

再拓展一下:

  • 删除指定列有空值的行:
# 删除 job 列有空值的行
test_df %>%
  filter(!is.na(job))

 

  • 删除所有有空值的行:
test_df %>%
    na.omit()