删除列时保留列名
问题描述:
我已经创建了一个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