计算数据帧中的非NA条目时出错

时间:2014-06-16 16:00:16

标签: r dataframe

我正在尝试查看有关案例的信息量是否与用户的持续时间相关。

目前,我有一个数据框df,我尝试执行以下操作:

df["amount_known"] <-df[rowSums(!is.na(df)),]

这导致以下错误:

  

[<-.data.frame中的错误(*tmp*,“amount_known”,值=列表(状态= c(3L,:     替换元素1有808047行,需要808247

可能导致这种情况发生的原因(当然,我该如何解决)?

1 个答案:

答案 0 :(得分:1)

如果您希望amount_known中新列df中的非NA条目数量可以这样做:

df$amount_known <-rowSums(!is.na(df))

以下是正在发生的事情的一个小例子:

df <- data.frame(x = 1:3, y = 66:68)
df$y[1] <- NA
df$x[3] <- NA

df
#   x  y
#1  1 NA
#2  2 67
#3 NA 68

rowSums(!is.na(df))
#[1] 1 2 1

这导致向量中具有df中的非NA数量。

现在,如果你这样做

df[rowSums(!is.na(df)),]

这将从df:

中选择向量c(1,2,1)中的行
#    x  y
#1   1 NA
#2   2 67
#1.1 1 NA

因此,例如,第1行显示两次。

然后在您的代码中,您将该输出分配到df中的新列。