Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 删除列时保留列名_R - Fatal编程技术网

R 删除列时保留列名

R 删除列时保留列名,r,R,我创建了一个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)*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"
有人知道只有一列时为什么不保留列名吗?

你被一个列咬伤了。将
,drop=FALSE
添加到您的数据帧子集(您会注意到一个副作用,即不再需要
作为.data.frame

df <- data.frame(A=rnorm(10, 10, 1), B=rep(NA, 10))
names(df) #prints 
[1] "df[, !(names(df) %in% deletecols)]"