[英]how to count observations used and deleted when using a regression in r
我有一個我正在使用的數據集,它有多個變量。 其中一些變量的觀察結果為 NA。 運行回歸后,由於 NA 刪除了一些觀察結果。 我使用以下代碼對數據進行子集化:
jsubset= jtrain %>% select(2,11,23,24,28)
對於這兩種情況,您都可以使用帶有
if_any()<\/code><\/a>的
filter<\/code> 。
取樣:
library(dplyr)
df <- read.csv(text="
fcode d89 cgrant clemploy cgrant_1
410032 0 0 NA NA
410032 0 0 0.270 0
410032 1 0 -0.0630 0
410440 0 0 NA NA
410440 0 0 0.0800 0
410440 1 0 0.0741 0
410495 0 0 NA NA
410495 0 0 0.223 0
410495 1 0 -0.0408 0
410500 0 0 NA NA", sep="")
df_no_na <- df %>%
filter(!if_any(everything(), is.na))
df_na <- df %>%
filter(if_any(everything(), is.na))
如果您有適當的數據框,則應該直截了當。 首先,我只是將您的數據復制到一個文本文件中,命名它,然后將其轉換為數據框:
slack <- read.table("slack.txt")
colnames(slack) <- c("fcode",
"d89",
"cgrant",
"clemploy",
"cgrant_1")
slack <- data.frame(slack)
然后只需排列值,這自然會重新排序您提到的 NA 值:
slack %>%
arrange(cgrant_1)
給你這個:
fcode d89 cgrant clemploy cgrant_1
1 3 410032 1 0 -0.0630
2 9 410495 1 0 -0.0408
3 6 410440 1 0 0.0741
4 5 410440 0 0 0.0800
5 8 410495 0 0 0.2230
6 2 410032 0 0 0.2700
7 1 410032 0 0 NA
8 4 410440 0 0 NA
9 7 410495 0 0 NA
10 10 410500 0 0 NA
如果您只想擺脫 NA 值:
slack %>%
na.omit()
這給了你:
fcode d89 cgrant cemploy cgrant_1
2 2 410032 0 0 0.2700
3 3 410032 1 0 -0.0630
5 5 410440 0 0 0.0800
6 6 410440 1 0 0.0741
8 8 410495 0 0 0.2230
9 9 410495 1 0 -0.0408
您還可以使用以下代碼將該數據子集到一個新的數據框中:
# NA Removed Dataframe:
no_na_slack <- slack %>%
na.omit()
# Is NA Dataframe:
is_na_slack <- slack %>%
filter_all(any_vars(is.na(.)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.