我正在尝试查看有关案例的信息量是否与用户的持续时间相关。
目前,我有一个数据框df,我尝试执行以下操作:
df["amount_known"] <-df[rowSums(!is.na(df)),]
这导致以下错误:
[<-.data.frame
中的错误(*tmp*
,“amount_known”,值=列表(状态= c(3L,: 替换元素1有808047行,需要808247
可能导致这种情况发生的原因(当然,我该如何解决)?
答案 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
中的新列。