I have a CSV file in Excel to be read into R using the read.csv
function. However, in the Excel file, some elements are blank, which indicate 0's. When I read the file into R, those elements are still blank. How can I fill these elements as 0's in R? It seems that is.na
-like functions won't apply to this situation. Thanks!
问问题
8168 次
2 回答
8
取决于如何将它们读入 R。数字列中的空白单元格通常应解释为NA
,在这种情况下
your_df$your_column[is.na(your_df$your_column)] <- 0
应该管用。您的问题表明这不起作用,在这种情况下,它们可能会被读取为空字符。在这种情况下,
your_df$your_column[your_df$your_column==""] <- 0
应该这样做。如果您发布可重现的示例(例如,带有指向 Dropbox 上文件的链接),则可能会更具体。
于 2013-09-13T17:28:26.113 回答
4
就像 Drew 所说,从空白中获取 NA 的方法是在您读入时。提供读入数据的代码和示例输出以获得更好的响应。还可以尝试一下,str
因为您可以看到数据中有哪些类,这是有价值的信息。
如果您有空白单元格并且列是数字,您可能会遇到一些手帕(即数据是一个因子或字符而不是数字向量)。这种方法将解决:
## Make up some data
dat <- data.frame(matrix(c(1:3, "", "", 1:3, "", 1:3, rep("", 3), 5), 4))
data.frame(apply(dat, 2, function(x) {
x[x == ""] <- 0
as.numeric(x)
}))
于 2013-09-13T17:33:36.420 回答