如何从带有R的文件中读取列

时间:2014-10-29 06:28:52

标签: r dataset

我有以下格式的文件(只是数字,没有别的):

12.5 18.75 18.75 37.5 31.25 31.25 
13.6 12.8 15.6 32.6 41 26.4 
13.6 12.8 15.6 32.6 41 26.4 
9.375 7.8125 11.71875 46.09375 36.71875 17.1875
.
.
.

更多行。有没有一种简单的方法可以将6列读入单独的R向量中进行进一步处理?

非常感谢任何建议。

2 个答案:

答案 0 :(得分:3)

R的工作方式,您应该将它们读入矩阵或数据框,并根据需要访问其中的变量(列),例如,通过with或使用$[。请参阅?with?"$"?"["

在二十分之二的近十九次中,我只是对该数据(或者read.table)使用read.delim将其放入数据框中。由于它似乎没有变量标签,我然后使用colnames来设置数据框中变量的名称。

剩下的大部分时间我可能会使用as.matrix将其放在矩阵中。偶尔我会matrix(scan(),...)代替。{/ p>

答案 1 :(得分:1)

请尝试以下操作:

mydf = read.table(text="
 12.5 18.75 18.75 37.5 31.25 31.25 
 13.6 12.8 15.6 32.6 41 26.4 
 13.6 12.8 15.6 32.6 41 26.4 
 9.375 7.8125 11.71875 46.09375 36.71875 17.1875
 ", header=F)

mydf
      V1      V2       V3       V4       V5      V6
1 12.500 18.7500 18.75000 37.50000 31.25000 31.2500
2 13.600 12.8000 15.60000 32.60000 41.00000 26.4000
3 13.600 12.8000 15.60000 32.60000 41.00000 26.4000
4  9.375  7.8125 11.71875 46.09375 36.71875 17.1875

基本上,复制所有行,然后在R终端中输入以下内容(在中间你需要通过按shift-insert粘贴所有行):

mydf = read.table(text="
<paste your lines here>
", header=F)

mydf将是一个data.frame:

str(mydf)
'data.frame':   4 obs. of  6 variables:
 $ V1: num  12.5 13.6 13.6 9.38
 $ V2: num  18.75 12.8 12.8 7.81
 $ V3: num  18.8 15.6 15.6 11.7
 $ V4: num  37.5 32.6 32.6 46.1
 $ V5: num  31.2 41 41 36.7
 $ V6: num  31.2 26.4 26.4 17.2

您可以通过以下命令访问每个元素:

mydf$V1
[1] 12.500 13.600 13.600  9.375

从文件中读取:

read.table(filename, header = FALSE, sep = "")

也可以使用:

read.csv(file, header = TRUE, sep = ",")
read.delim(file, header = TRUE, sep = "\t")
read.delim2(file, header = TRUE, sep = "\t")

如需帮助,请发出命令:

?read.table