簡體   English   中英

"在 r 中使用回歸時如何計算使用和刪除的觀察值"

[英]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))

按 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 值

如果您只想擺脫 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 值的子集數據

您還可以使用以下代碼將該數據子集到一個新的數據框中:

# 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM