R. 用 NA 替换空值表示
R. replacing null value representation with NA
我已经尝试了我在 Whosebug 上找到的关于这个主题的所有方法,但没有任何效果。
这是我的名为 TEST 的数据集的示例:
x2000 x2001 x2002
100 1200 230
200 2002 280
: 1980 :
":"表示缺失值。问题是我不能用 R 接受的 NA 替换这个冒号。
我尝试过的:
sum(TEST %in c(":"))
returns: [1] 0
TEST[TEST==":"] <-NA #does nothing
我尝试将文件另存为 .csv,将 excel 中的值替换为 "NA",但它仍然没有任何反应。这些列不是因素。如果该列包含“:”的值,则该列为 "chr",否则为 "int"。
可能最简单的方法是在使用 read.
函数族之一读取数据时设置 na.strings 方法。以下是示例数据的 read.table
示例:
df <- read.table(header=T, text="x2000 x2001 x2002
100 1200 230
200 2002 280
: 1980 : ", na.strings=":")
这个returns
df
x2000 x2001 x2002
1 100 1200 230
2 200 2002 280
3 NA 1980 NA
也许更重要的是,结果 data.frame 的结构是整数向量:
str(df)
'data.frame': 3 obs. of 3 variables:
$ x2000: int 100 200 NA
$ x2001: int 1200 2002 1980
$ x2002: int 230 280 NA
否则,您最终会得到整数向量和因子变量的混合体,这会使清理过程变得有点复杂。
我已经尝试了我在 Whosebug 上找到的关于这个主题的所有方法,但没有任何效果。
这是我的名为 TEST 的数据集的示例:
x2000 x2001 x2002
100 1200 230
200 2002 280
: 1980 :
":"表示缺失值。问题是我不能用 R 接受的 NA 替换这个冒号。
我尝试过的:
sum(TEST %in c(":"))
returns: [1] 0
TEST[TEST==":"] <-NA #does nothing
我尝试将文件另存为 .csv,将 excel 中的值替换为 "NA",但它仍然没有任何反应。这些列不是因素。如果该列包含“:”的值,则该列为 "chr",否则为 "int"。
可能最简单的方法是在使用 read.
函数族之一读取数据时设置 na.strings 方法。以下是示例数据的 read.table
示例:
df <- read.table(header=T, text="x2000 x2001 x2002
100 1200 230
200 2002 280
: 1980 : ", na.strings=":")
这个returns
df
x2000 x2001 x2002
1 100 1200 230
2 200 2002 280
3 NA 1980 NA
也许更重要的是,结果 data.frame 的结构是整数向量:
str(df)
'data.frame': 3 obs. of 3 variables:
$ x2000: int 100 200 NA
$ x2001: int 1200 2002 1980
$ x2002: int 230 280 NA
否则,您最终会得到整数向量和因子变量的混合体,这会使清理过程变得有点复杂。