如何在数据框中抑制NA值时逃避长度误差?

时间:2015-06-30 11:48:57

标签: r

我有一个包含大量NA的data.frame,但是每列没有不同的长度,我希望有一个相同的数据帧,但没有NA。 所以当我在做的时候:

  for (i in 1:length(df[,1]))
      (df[,i]<-df[,i][!is.na(df[,i])])

答案:

  Error in `[<-.data.frame`(`*tmp*`, , i, value = c(2696L, 2696L, 2640L,  : 

有人知道该怎么做吗?

1 个答案:

答案 0 :(得分:0)

您无法在问题中的代码中执行尝试,因为data.frame是具有单个键限制的列表结构:列表中的所有向量(或变量)必须具有相同的长度。您的代码正在尝试创建不同长度的向量,这是不允许的。

您可能只需要complete.cases功能:

complete.cases(df)

这将删除任何列中具有任何NA值的所有行。