如何在此数据库中正确使用 R 中的 read.table?
How can I use read.table in R properly with this database?
我正在尝试用 read.table(file="clipboard")
在 R:
中读取这个虚拟数据库
Aspecto Sexo Ranking
1 Imagen Hombre 7.50
2 Mantenimiento Hombre 7.18
3 Otro Hombre 7.05
4 Espacios de venta Hombre 6.91
5 Vigilancia Hombre 6.36
6 Tiempo Hombre 6.51
7 Espacios libres Hombre 6.40
8 Imagen Mujer 7.21
9 Mantenimiento Mujer 7.30
10 Otro Mujer 6.90
11 Espacios de venta Mujer 7.02
12 Vigilancia Mujer 6.53
13 Tiempo Mujer 6.40
14 Espacios libres Mujer 5.78
此代码似乎有效:
pw <- read.table(file="clipboard", dec=".", sep=",", header=TRUE)
但是结构显然不是我想要的:
str(pw)
'data.frame': 14 obs. of 1 variable:
$ Aspecto...Sexo......Ranking: Factor w/ 14 levels "1
我已经尝试了很多东西,包括 fill=TRUE
等等其他参数,但我就是无法得到我期望的结果。例如:
pw <- read.table(file="clipboard", dec=".", sep="", header=TRUE)
Error in read.table(file = "clipboard", dec = ".", sep = "", header = TRUE) :
more columns than column names
任何建议将不胜感激。
您可以使用 read.fwf
,因为列的宽度是固定的,而且字符串两边没有引号。由于第一行只有 3 个名字,我们跳过这个,但稍后使用扫描读取它们。
clipboard <- read.fwf("clipboard.txt", widths=c(2,18,9,8), skip=1, as.is=TRUE)
# or row.names=1 to ignore the first un-named column
colnames(clipboard)[2:4] = scan("clipboard.txt", what=rep("character", 3), nlines=1)
str(clipboard)
'data.frame': 14 obs. of 4 variables:
$ V1 : num 1 2 3 4 5 6 7 8 9 10 ...
$ Aspecto: chr " Imagen" " Mantenimiento" " Otro" " Espacios de venta" ...
$ Sexo : chr " Hombre" " Hombre" " Hombre" " Hombre" ...
$ Ranking: num 7.5 7.18 7.05 6.91 6.36 6.51 6.4 7.21 7.3 6.9 ...
我正在尝试用 read.table(file="clipboard")
在 R:
Aspecto Sexo Ranking
1 Imagen Hombre 7.50
2 Mantenimiento Hombre 7.18
3 Otro Hombre 7.05
4 Espacios de venta Hombre 6.91
5 Vigilancia Hombre 6.36
6 Tiempo Hombre 6.51
7 Espacios libres Hombre 6.40
8 Imagen Mujer 7.21
9 Mantenimiento Mujer 7.30
10 Otro Mujer 6.90
11 Espacios de venta Mujer 7.02
12 Vigilancia Mujer 6.53
13 Tiempo Mujer 6.40
14 Espacios libres Mujer 5.78
此代码似乎有效:
pw <- read.table(file="clipboard", dec=".", sep=",", header=TRUE)
但是结构显然不是我想要的:
str(pw)
'data.frame': 14 obs. of 1 variable:
$ Aspecto...Sexo......Ranking: Factor w/ 14 levels "1
我已经尝试了很多东西,包括 fill=TRUE
等等其他参数,但我就是无法得到我期望的结果。例如:
pw <- read.table(file="clipboard", dec=".", sep="", header=TRUE)
Error in read.table(file = "clipboard", dec = ".", sep = "", header = TRUE) :
more columns than column names
任何建议将不胜感激。
您可以使用 read.fwf
,因为列的宽度是固定的,而且字符串两边没有引号。由于第一行只有 3 个名字,我们跳过这个,但稍后使用扫描读取它们。
clipboard <- read.fwf("clipboard.txt", widths=c(2,18,9,8), skip=1, as.is=TRUE)
# or row.names=1 to ignore the first un-named column
colnames(clipboard)[2:4] = scan("clipboard.txt", what=rep("character", 3), nlines=1)
str(clipboard)
'data.frame': 14 obs. of 4 variables:
$ V1 : num 1 2 3 4 5 6 7 8 9 10 ...
$ Aspecto: chr " Imagen" " Mantenimiento" " Otro" " Espacios de venta" ...
$ Sexo : chr " Hombre" " Hombre" " Hombre" " Hombre" ...
$ Ranking: num 7.5 7.18 7.05 6.91 6.36 6.51 6.4 7.21 7.3 6.9 ...