【发布时间】:2017-05-31 06:37:07
【问题描述】:
我有一个如下所示的 data.frame:
a b c d
1 2 NA 1
NA 2 2 1
3 2 NA 1
NA NA 20 2
我想用 c / d 替换 NA(并删除 c 和 d)看起来像:
a b
1 2
2 2
3 2
10 10
一些背景:d 是该特定行中NAs 的总和。
我不知道列的名称,所以我尝试了一些变体,例如:
df2[, 1:(length(colnames(df2)) - 2)][is.na(df2[, 1:(length(colnames(df2)) - 2)])] = df2$c / df2$d
但是得到了:
Error in `[<-.data.frame`(`*tmp*`, is.na(df2[, 1:(length(colnames(df2)) - :
'value' is the wrong length
【问题讨论】:
-
您必须在等号右侧使用与在等号左侧相同的索引 - 您没有指示 which c 和 你想要哪个。
-
一定是复制粘贴错误。应该是
df2$c / df2$d