8变量从.txt文件中提取正确地提取,下面的图像是原始数据的示例:如何检查数据(1.5米+行)从.txt文件
“LAT”, “LON”, “海拔”, “VAR”(长在第三行字符串), “年”, “第m个”, “天” 和 “数据”(值):
的.Rdata文件是使用1.5M +行创建的。下面的图片是结果的截图:
正如你所看到的,这些行似乎从.txt文件正确地提取和我已经手动检查的第1000行,但我不能这样做为文件的其余部分。
我的问题是:如何有效检查1.5 m行是否被正确提取?
8变量从.txt文件中提取正确地提取,下面的图像是原始数据的示例:如何检查数据(1.5米+行)从.txt文件
“LAT”, “LON”, “海拔”, “VAR”(长在第三行字符串), “年”, “第m个”, “天” 和 “数据”(值):
的.Rdata文件是使用1.5M +行创建的。下面的图片是结果的截图:
正如你所看到的,这些行似乎从.txt文件正确地提取和我已经手动检查的第1000行,但我不能这样做为文件的其余部分。
我的问题是:如何有效检查1.5 m行是否被正确提取?
建立在@hedgedandlevered的答案和@vagabond的评论有很多事情,你可以做,可能系统,可以做分析之前的数据帧。我环顾了Stack Overflow,但找不到有关检查数据帧的问题,因此,值得这是我在加载文件时使用的过程。
我使用dplyr
并将我的数据帧转换为dbf_tbl
,以便输出合理。使用内置的数据集iris
:
install.packages("dplyr")
require("dplyr")
iris <- tbl_df(iris)
iris
这显示了文件和变量尚未打印(如果有的话)的负责人。这显示我是否有任何明显的问题,例如数据框未正确加载。我不打扰tail()
但它不能伤害。
接下来我会检查我有正确数量的行(例)如预期。这是由dplyr
打印或可以明确地检查:
nrow(iris)
从这里它取决于个人的数据,我怎么继续,但它是健全检查由@hedgedandlevered的建议的情况。在你的情况我会确保纬度和经度坐标看理智的对待:
range(df$lat)
range(df$long)
summary(df$lat)
summary(df$long)
我会专门检查NAS和我甚至可能绘制在一些GIS软件的点的随机选择(或使用R!)以确保点看起来合理。
至于年,月,日我会做一个类似的总结/范围,以确保该值是明智的:
range(df$year) # only you can know what values are sensible
range(df$month) # hopefully 1 - 12 only!
range(df$day) # you get the idea...
最后,确保$data
看起来与summary()
合理,甚至一箱线图:
boxplot(df$data)
如果您有数据(即数据框中包含数字,而不是NAs或0),则可以假定数据已正确加载。我从来没有经历过R'造成东西'的情况,所以如果那里有东西,那是正确的。话虽如此,如果你有,你有太多的NA的情况下,你可以看看他们:
which(is.na(df$data))
,它将打印违规行号的索引/指数,为您的子集进一步探讨:
例如,如果你有行1,2 NAS上的变量,3,你可以看看这些只用行:
subset <- which(is.na(df$variable))
View(df[subset, ])
增加:从v0.99.x RStudio现在包括一个更复杂的数据视图,所以你可以打开你的约会View(df)
(没有te capital'V'),并通过GUI更容易地探索,子集和过滤数据集。
检查和验证数据帧不是微不足道的,也不容易实现自动化,但有些工具可以帮助您提高效率。不过,他们并没有说清洁和检查数据需要比分析更多的时间,尽管如此!
表应具有哪些属性?应该“一年”只能在一定范围内?该指数应该一直在增加吗?每个经度测量值应该总是有恒定数量的测量值? 通过一些理智检查应该足够了;如果行了一会儿似乎是正确,和他们通过完整性检查,你可能去好了足够的确定性
例如:
unique(df[,'year'])
或者,你可以在表写入相同的格式,你读它,然后比较MD5s(谷歌MD5的帮助)
谢谢你的回答。正是我在找的东西。 – angeladc17
通过“提取”,你的意思是读入R使用'read.table'或'read.csv'?基于此,我可以给你一个你可以做的事情清单来验证你的数据。 – vagabond