如何使用lapply从数据帧列表中删除空行?

时间:2017-03-02 17:55:27

标签: r list dataframe

我有一个数据框列表。我的列表中有28个数据框。某些数据框具有空行但不是全部。如何使用lapply或类似函数从列表中的所有数据框中删除空行?

以下是我从this question修改过的内容。不幸的是,这只返回那些空的行。

#Get list of all files that will be analyzed
filenames = list.files(pattern = ".csv")

#read in all files in filenames
mydata_run1 = lapply(filenames, read.csv, header = TRUE, quote = "")

#Remove empty rows
mydata_run1 = lapply(mydata_run1, function(x) sapply(mydata_run1, nrow)>0)

谢谢。

1 个答案:

答案 0 :(得分:1)

我假设你想要在所有列中出现时删除空行。 如果是的话,

# remove row data if only all the columns have NA value. 
lapply(data, function(x){ x[rowSums(is.na(x)) != ncol(x),]})

输出

$df1
  A B
1 1 4
3 3 6

$df2
  A  B
1 1 NA
3 3  6

数据

data <- list(
            df1 = data.frame(A = c(1,NA,3), B = c(4, NA, 6)),
            df2 = data.frame(A = c(1,NA,3), B = c(NA, NA, 6)))