我有一个测量数据框。
一列显示以mm为单位的测量值,另一列以单位显示(相对于我正在使用的立体显微镜上的缩放级别而变化的相对比例)。 我想浏览数据框的每一行,并且每个" length_mm"等于NA,我想使用" length_units"中的值。计算" length_mm"。
到目前为止,我已尝试过此代码:
convert_to_mm <- function(x) {
x["length_mm"==NA] <- x["length_units"]/10
x["length_mm"]
}
apply(zooplankton[,c("length_mm","length_units")], 1, convert_to_mm)
有时我也有两个&#34; length_mm&#34;和&#34; length_units&#34;等于NA。在这些情况下,我想跳过这一行。
答案 0 :(得分:3)
这比你做的更容易
# Which are the rows with bad values for mm? Create an indexing vector:
bad_mm <- is.na(zooplankton$length_mm)
# Now, for those rows, replace length_mm with length_units/10
zooplankton$length_mm[bad_mm] <- zooplankton$length_units[bad_mm]/10
在检查NA值时,请记住使用is.na(x)
而不是x==NA
。为什么?看看NA==NA
的提示!
答案 1 :(得分:0)
几乎就在那里。您应该使用is.na(myVariable)
而不是myVariable ==NA