1
我已經創建了一個R腳本,用於計算數據框每列中缺失值的百分比,然後刪除超過預設閾值的列。需要維護列名需要。刪除列時保留列名
當列刪除後數據框中存在多個列時,名稱將保留,但只有一列時不會存在。
時列名稱保持不變
df <- data.frame(A=rnorm(10, 10, 1), B=rep(NA, 10), C=rnorm(10, 10, 1))
threshold <- 80
pmiss <- function(x) {
ifelse(sum(is.na(x))/length(x)*100 > threshold, TRUE, FALSE)
}
temp <- sapply(df, pmiss)
deletecols <- names(temp[temp==TRUE])
df <- as.data.frame(df[,!(names(df) %in% deletecols)])
names(df) #prints
[1] "A" "C"
但是代碼,定義DF爲
df <- data.frame(A=rnorm(10, 10, 1), B=rep(NA, 10))
和
names(df) #prints
[1] "df[, !(names(df) %in% deletecols)]"
有誰知道爲什麼列名時不保留只有一列?
謝謝!猜猜還有很多我仍需要了解R! – obug 2013-02-14 20:07:50