我需要从包含NULL值的文件中读取数据帧。这是一个示例文件:
charCol floatCol intCol a 1.5 10 b NULL 3 c 3.9 NULL d -3.4 4
I read this file into a data frame:
> df <- read.table('example.dat', header=TRUE)
但是R不会将“NULL”条目解释为NULL:
> is.null(df$floatCol[2])
[1] FALSE
我应该如何格式化我的输入文件,以使R正确地将此类条目视为NULL?
最佳答案
如果发生意外,请始终执行摘要。
> summary(df)
charCol floatCol intCol
a:1 1.5 :1 10 :1
b:1 -3.4:1 3 :1
c:1 3.9 :1 4 :1
d:1 NULL:1 NULL:1
看起来有点奇怪。向下钻取:
> summary(df$floatCol)
1.5 -3.4 3.9 NULL
1 1 1 1
这到底是什么?
> class(df$floatCol)
[1] "factor"
无效的数字格式(字符串'NULL')的存在已导致R转到“哦,我猜这些不是数字,我会将它们读入字符串并为您提供一个因子(分类变量)”。
该解决方案刚刚发布,使用了na.string =“NULL”,但请记住,NA与R中的NULL不同。NA是丢失数据的标记,NULL是真正的非值。比较:
> c(1,2,3,NULL,4)
[1] 1 2 3 4
> c(1,2,3,NA,4)
[1] 1 2 3 NA 4
正确阅读后,通常应使用is.na(foo)进行适当的测试。
关于r - 从文件中读取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4032660/