R 删除第一行数据框,直到第一行没有 NA

标签 r function dataframe while-loop na

我在数据框上应用 na.approx,如果 NA 恰好在我的数据库的第一行或最后一行,这将不起作用。

如何编写函数来执行以下操作: "当数据框第一行的任何值为NA时,删除第一行"

示例数据框:

x1=x2=c(1,2,3,4,5,6,7,8,9,10,11,12)
x3=x4=c(NA,NA,3,4,5,6,NA,NA,NA,NA,11,12)
df=data.frame(x1,x2,x3,x4)

此示例数据框的结果应如下所示:

result=df[-1:-2,]

我目前的尝试都与此类似:

replace_na=function(df){
while(anyNA(df[1,])=TRUE){
  df=df[-1,],
  return(df)
}  
#this is where I would apply the na.approx function to the data frame
}

非常感谢任何帮助,谢谢!

最佳答案

您可以使用complete.cases。使用 cumsum,将删除第一个不完整的行:

df[cumsum(complete.cases(df)) != 0, ]
   x1 x2 x3 x4
3   3  3  3  3
4   4  4  4  4
5   5  5  5  5
6   6  6  6  6
7   7  7 NA NA
8   8  8 NA NA
9   9  9 NA NA
10 10 10 NA NA
11 11 11 11 11
12 12 12 12 12

关于R 删除第一行数据框,直到第一行没有 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37843012/

相关文章:

r - 使用循环为多年来选择的整洁的人口普查变量制作密码本,调用循环数据集时遇到麻烦

r - 在 igraph(R 包)中反转有向图(转置图)中的边

r - 合并异构数据帧

r - 如何将数据框中的所有数字字符串转换为 R 中的数字?

r - ggplot 图上的衰退阴影

r - 如何绘制点之间的曲线

c - 不是将所有参数传递给函数不好吗?

被调用的对象 'strn' 不是一个函数

c - C 中的简单链表函数

python - 遍历 pandas 数据框中的所有列以按分隔符拆分