r-跳过/删除具有空单元格的行



我正在上传,正在我闪亮的应用程序中读取一个文本文件。以下是我如何在闪亮的应用程序中阅读它:

data <- reactive({
req(input$file)
df <- read.table(file=input$file$datapath[input$file$name==input$Select], skip = 15, sep=input$sep, header = input$header, stringsAsFactors = input$stringAsFactors)
updateSelectInput(session, inputId = 'xcol', label = 'X Variable',
choices = names(df), selected = names(df)[1])
updateSelectInput(session, inputId = 'ycol', label = 'Y Variable',
choices = names(df), selected = names(df)[2])
return(df)
})

现在,我想删除/跳过上传数据集中具有空单元格的行。

我的尝试:

df[!apply(df == "", 1, all),]

但是,它不起作用。

在使用read.table时,是否有不同的方法?

@maydin的链接适用于NA值,但您需要更多的信息来检查特定的(即"",空字符串(。

df <- data.frame(a=c('a','b',''), b="")
rowSums(df != "") == 0
# [1] FALSE FALSE  TRUE

这告诉哪些行的行上正好有0个非空字符串。如果其中一列的字符串长度超过零,那么它将弹出为false。

使用它,我们将只查找具有1个或多个非空字符串的行。

df[rowSums(df != "") > 0, ]
#   a b
# 1 a  
# 2 b  

我得到了答案:

这是代码:原始数据:

data <- reactive({
req(input$file)
df <- read.table(file=input$file$datapath[input$file$name==input$Select], skip = 15, sep=input$sep, header = input$header, stringsAsFactors = input$stringAsFactors, skipNul = TRUE, na.strings = "")
updateSelectInput(session, inputId = 'xcol', label = 'X Variable',
choices = names(df), selected = names(df)[1])
updateSelectInput(session, inputId = 'ycol', label = 'Y Variable',
choices = names(df), selected = names(df)[2])
return(df)
})

删除空单元格行的数据:

data_1 <- reactive({
req(input$file)
x <- data()[, c(input$xcol, input$ycol)]
x[x == ""] <- NA
M <- na.omit(x)
return(M)
})

最新更新