簡體   English   中英

在 R 中,如果我正在檢查的變量缺少值,我想創建兩個新變量

[英]In R, I want to create two new variables if the variable I'm checking has missing values

df <- data.frame(replicate(10,sample(0:100,1000,rep=TRUE)))
eee <- as.data.frame(lapply(df, function(cc) cc[ sample(c(TRUE, NA), prob = c(0.85, 0.15), size = length(cc), replace = TRUE) ]))
View(eee)

這給了我一個缺少數據的數據框。

如果我當前數據框中的變量缺少值,那么我想創建兩個新變量。 第一個是二進制“是”,這是丟失或“否”,它沒有丟失。 如果變量沒有丟失,我希望第二個變量與原始變量相同。 如果它丟失,我想為我的新列估算原始變量的平均值。

我不確定如何編寫代碼來檢查我的整個數據集,而不是單獨執行每個變量。

感謝您的幫助!

我想出了一些粗略但有效的方法。

df <- data.frame(replicate(10,sample(0:100,1000,rep=TRUE)))

eee <- as.data.frame(lapply(df, 
  function(cc) cc[ sample(c(TRUE, NA), prob = c(0.85, 0.15), size = length(cc), replace = TRUE) ]))



replace_fn1 <- function(x) ifelse(is.na(x), "yes", "no")
pt1 <- apply(eee, c(1, 2), replace_fn1)


col_means <- as.data.frame(t(apply(eee, 2, mean, na.rm = TRUE)))

#set up df with same size of all column means

col_means <- as.data.frame(matrix(col_means, 
                          nrow = 1000, ncol = 10, byrow = TRUE))

pt2 <- pt1
na_ind <- which(is.na(eee), arr.ind = TRUE)
pt2[na_ind] <- col_means[na_ind]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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