Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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中的有效值(NA除外)数选择数据帧中的某些列?_R_Validation_Dataframe - Fatal编程技术网

如何根据R中的有效值(NA除外)数选择数据帧中的某些列?

如何根据R中的有效值(NA除外)数选择数据帧中的某些列?,r,validation,dataframe,R,Validation,Dataframe,我使用的是R,我有一个包含多个列的数据框架。我想运行一个代码并自动检查每列中的值数(有效值,而不是NA)。然后,它应该选择50%的行由有效值填充的列,并将它们保存在新的数据框中 有人能帮我做这个吗?多谢各位 是否有任何方法可以将代码应用于数量不确定的列 使用purrr包,您可以编写下面的函数来检查缺失值的百分比: pct_missing <- purrr::map_dbl(df,~mean(is.na(.x))) pct\u missing您也可以在R base中创建一个函数来自动检索与

我使用的是R,我有一个包含多个列的数据框架。我想运行一个代码并自动检查每列中的值数(有效值,而不是NA)。然后,它应该选择50%的行由有效值填充的列,并将它们保存在新的数据框中

有人能帮我做这个吗?多谢各位


是否有任何方法可以将代码应用于数量不确定的列

使用
purrr
包,您可以编写下面的函数来检查缺失值的百分比:

pct_missing <- purrr::map_dbl(df,~mean(is.na(.x)))

pct\u missing您也可以在R base中创建一个函数来自动检索与标准匹配的列:

功能:

ColSel <- function(df){
vals <- apply(df,2, function(fo) mean(is.na(fo))) < .5
return(df[,vals])
}

ColSel谢谢你,这太有帮助了。如何选择这些有效列并自动创建新数据集?
new_data=df[colMeans(is.na(df))
library(dplyr)
df_new <- df %>% select(one_of(selected_column))
ColSel <- function(df){
vals <- apply(df,2, function(fo) mean(is.na(fo))) < .5
return(df[,vals])
}
## example
df1 <- data.frame(
    a = c(runif(19),NA),
    b = c(rep(NA,11),runif(9)),
    d = rep(NA,20),
    e = runif(20)
    )
df2 <- ColSel(df1)