我有一个数据框列表。我的列表中有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)
谢谢。
答案 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)))