如何在读入r时处理空白值

时间:2014-11-25 06:30:56

标签: r

我有一个包含3个变量的数据集。在这3个变量中,2个变量用一些数据存档,第三个变量是空的(即,我没有任何信息)

ex:

data1<-structure(list(COL1 = structure(1:10, .Label = c("A", "B", "C", 
"D", "E", "F", "G", "H", "I", "J"), class = "factor"), COL2 = 1:10, 
COL3 = c("", "", "", "", "", "", "", "", "", "")), .Names = c("COL1", 
"COL2", "COL3"), row.names = c(NA, -10L), class = "data.frame")

当我尝试加载此数据集时,自动R将空单元格视为NA值。我怎样才能读取我的数据?

请帮忙......

2 个答案:

答案 0 :(得分:4)

您可以在读取数据集时为该列指定colClasses=NULL

  read.table('emptycell.txt', header=TRUE, fill=TRUE,
                colClasses=c('character', 'numeric', NULL))
  #   COL1 COL2 COL3
  #1     A    1     
  #2     B    2     
  #3     C    3     
  #4     D    4     
  #5     E    5     
  #6     F    6     
  #7     G    7     
  #8     H    8     
  #9     I    9     
  #10    J   10     

或者您可以在阅读@KFB提及的数据集后将NA更改为''

  data1 <- read.table('emptycell.txt', header=TRUE, fill=TRUE)
  data1[is.na(data1)] <- ''

答案 1 :(得分:0)

一般情况下,你用空白替换NA值。

你可以这样做:

df <- data.frame(data=c(1:10, rep(NA, 10)), data2=2, data3=10)
df[is.na(z) ]<- ""

将会变成看起来像这样的df

           data data2 data3
    1     1     2    10
    2     2     2    10
    3     3     2    10
    4     4     2    10
    5     5     2    10
    6     6     2    10
    7     7     2    10
    8     8     2    10
    9     9     2    10
    10   10     2    10
    11   NA     2    10
    12   NA     2    10
    13   NA     2    10
    14   NA     2    10
    15   NA     2    10
    16   NA     2    10
    17   NA     2    10
    18   NA     2    10
    19   NA     2    10
    20   NA     2    10


into 


       data ncol nrow
1     1    2   10
2     2    2   10
3     3    2   10
4     4    2   10
5     5    2   10
6     6    2   10
7     7    2   10
8     8    2   10
9     9    2   10
10   10    2   10
11         2   10
12         2   10
13         2   10
14         2   10
15         2   10
16         2   10
17         2   10
18         2   10
19         2   10
20         2   10