0

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!

4

2 回答 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 回答