如何解决跳过/删除具有空单元格的行
我正在上传闪亮的应用程序中的文本文件。 这是我在闪亮的应用程序中阅读的方式:
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',selected = names(df)[2])
return(df)
})
现在,我想删除/跳过上传的数据集中具有空单元格的行。
我的尝试:
df[!apply(df == "",1,all),]
但是,它不起作用。
使用read.table
时有其他方法吗?
解决方法
@maydin的链接适用于NA
值,但是您需要花费更多时间来检查特定的 value (即""
,空字符串)。
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',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)
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。