[英]How to include missing values in subsetting observations in dataframe in R?
我想包括對問題評分為 1 的參與者和未回答問題的參與者(即“NA”)。 我嘗試在 R 中使用子集 function 但在我嘗試的許多代碼中返回的參與者數量為零。 下面是我使用的代碼。 我認為代碼“alldata$Debrief_2=='1'”的第一部分是正確的,因為當我單獨輸入時,它總是返回合理數量的參與者。
但是對於第二部分(即“is.na(alldata$Debrief_2)”),這是關於缺失值的,在我所做的嘗試中,返回的數字始終為零。 所以我認為主要問題在於缺失值的代碼。
alldata3 <- alldata[ which(alldata$Debrief_2=='1'
& (is.na(alldata$Debrief_2))
), ]
我還嘗試了以下代碼來包含缺失值,但結果都是零觀察值。
alldata3 <- alldata[ which(alldata$Debrief_2=='1'
+ & is.na(alldata$Debrief_2)
+ ), ]
alldata3 <- alldata[ which(alldata$Debrief_2=='1'
+ & alldata$Debrief_2=='is.na'
+ ), ]
alldata3 <- alldata[ which(alldata$Debrief_2!='2'
+ ),na.rm=TRUE]
is.na 不起作用對我來說很奇怪,因為當我使用下面的代碼檢查缺失值時,它返回了合理數量的缺失值觀察值。 我也沒有更改我導入到 R 的 excel 中的空列中的任何內容(即,我沒有將 NA 更改為字符)。
sum(is.na(alldata$Debrief_2))
我也試過排除評分為 2 的參與者(答案只有 1 或 2 兩個選項),但結果與只包括評分為 1 的參與者是一樣的。請看下面的代碼。
alldata3 <- alldata[ which(alldata$Debrief_2!='2'
+ ), ]
我已經閱讀了下面的字符串並使用了建議的代碼,但正如您所看到的,它在我的情況下不起作用...:(
https://www.edureka.co/community/2308/how-to-subset-rows-containing-in-chosen-column-of-data-frame
** 有人可以為我建議一個正確的代碼來包含缺失值的參與者嗎? 提前謝謝你的幫助!**
由於您沒有提供可重現的示例,因此我編造了一些數據。
# data
set.seed(22)
all_data <- data.frame("Debrief_1" = sample(c(NA, 1:10), 100, replace = TRUE),
"Debrief_2" = sample(c(NA, 1:10), 100, replace = TRUE))
然后我們可以使用or進行子集化,即,如果Debrief_1" 等於 1 或 NA,我們希望保留觀察結果。
# subset
with(all_data,
{all_data[Debrief_1 == 1 | is.na(Debrief_1), ]})
# Debrief_1 Debrief_2
# 6 NA 4
# 14 NA NA
# 16 1 5
# 17 NA 9
# 21 NA 2
# 34 NA 5
# 35 1 NA
# 36 NA 8
# 38 1 7
# 39 1 7
# 52 1 6
# 54 NA 7
# 61 NA 2
# 70 NA 6
# 71 1 8
# 83 1 2
# 84 1 2
# 90 NA NA
# 93 NA 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.