为此问题的简单性提前道歉.我试图使用以下代码将.dat文件从网站导入R:
www = "http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat"
data <- read.delim(www, header = TRUE, sep="\t")
Run Code Online (Sandbox Code Playgroud)
我想访问data.frame的Value部分,但是,我不确定data.frame的维度,如果我输入ncol(data),它返回1,我期待三个.如何访问此data.frame的"第三"列?
A5C*_*2T1 57
dat文件在实际数据之前有一些额外的信息.用skip
参数跳过它们:
read.table("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat",
header=TRUE, skip=3)
Run Code Online (Sandbox Code Playgroud)
如果您不熟悉数据集,一种简单的方法是首先readLines
检查几行,如下所示:
readLines("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat",
n=10)
# [1] "Ozone data from CZ03 2009" "Local time: GMT + 0"
# [3] "" "Date Hour Value"
# [5] "01.01.2009 00:00 34.3" "01.01.2009 01:00 31.9"
# [7] "01.01.2009 02:00 29.9" "01.01.2009 03:00 28.5"
# [9] "01.01.2009 04:00 32.9" "01.01.2009 05:00 20.5"
Run Code Online (Sandbox Code Playgroud)
在这里,我们可以看到实际数据从[4]
,所以我们知道跳过前三行.
如果你真的只想要这个Value
专栏,你可以通过以下方式实现:
as.vector(
read.table("http://www.nilu.no/projects/ccc/onlinedata/ozone/CZ03_2009.dat",
header=TRUE, skip=3)$Value)
Run Code Online (Sandbox Code Playgroud)
同样,readLines
对于帮助我们确定要导入的列的实际名称非常有用.
但是,我认为在阅读整个数据集并在以后提取时没有太大的优势.