Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何忽略.csv文件中的空标题?_R_Csv_Rstudio - Fatal编程技术网

R 如何忽略.csv文件中的空标题?

R 如何忽略.csv文件中的空标题?,r,csv,rstudio,R,Csv,Rstudio,如何忽略.csv文件中的空标题 我有一个像这样的csv文件 http://190.12.101.70/~digicelc/gestion/reportes/import/liquidacion/13958642917519.csv 我的代码是 data <- read.csv('1.csv',header = T, sep=";") 我不想跳过文件的头 谢谢大家! 我在这里看不到同样的行为。R将默认列名和NA添加到不可用数据中 > data <- read.csv("tes

如何忽略.csv文件中的空标题

我有一个像这样的csv文件

http://190.12.101.70/~digicelc/gestion/reportes/import/liquidacion/13958642917519.csv
我的代码是

data <- read.csv('1.csv',header = T, sep=";")
我不想跳过文件的头


谢谢大家!

我在这里看不到同样的行为。R将默认列名和NA添加到不可用数据中

> data <- read.csv("test.csv", header = TRUE, sep = ";")
> data    
  col1      col2      col3       col4          X X.1
1 val1      val2      val3       val4       val5  NA
2 val1      val2      val3       val4       val5  NA
>数据
col1 col2 col3 col4 X X.1
1瓦尔1瓦尔2瓦尔3瓦尔4瓦尔5 NA
2 val1 val2 val3 val4 val5 NA

您使用的是最新版本吗?

但是错误消息会准确地告诉您问题所在。您的列多于列名

download.file("http://190.12.101.70/~digicelc/gestion/reportes/import/liquidacion/13958642917519.csv", destfile="1.csv")
D1 <- read.csv2("1.csv", skip=1, header=FALSE)
firstlines <- readLines("1.csv", 3) 
splitthem <- strsplit(firstlines, ";")
sapply(splitthem, length)
# [1] 28 42 42
我认为给它们命名是很有用的,因为许多数据帧操作都假定名称。例如,假设您的名称为空(“如上所述”),并尝试查看数据帧的前几行:

head(D)
# skipped most of the output, keeping only column 42:
  structure(c("-1", "70", ".5", "70", "266", "70"), class = "AsIs")
1                                                                -1
2                                                                70
3                                                                .5
4                                                                70
5                                                               266
6                                                                70
因此,当使用head时,您将看到数据框中有有趣的名称。或者另一个例子:

D[1:3,29:31]
                             .1                  .2
1 C_COMPONENTE_LIQ_DESDE_CO 243 LIQUIDACION TOPE CO
2 C_COMPONENTE_LIQ_DESDE_CO 243         RESIDUAL CO
3 C_COMPONENTE_LIQ_DESDE_CO 243         RESIDUAL CO
  • 第一个组件现在命名为“”,第二个组件命名为“.1”,第三个组件命名为“.2”。查看下面data.frame帮助文件中的报价:
列名应为非空,尝试使用空名称将导致 不支持的结果。允许使用重复的列名,但需要使用check.names =FALSE,data.frame生成这样的数据帧。然而,并不是所有的操作都在 数据框将保留重复的列名:例如类似矩阵的子集 将强制结果中的列名是唯一的

或者假设您在数据帧的开头添加了一些列;如果您有col名称,那么您仍然可以将以前的第29列命名为D$V29,但使用D[,29],您将获得其他内容


可能还有其他例子。换句话说,数据框中可以有“未命名”列,但我认为这不是一个好主意。从技术上讲,数据帧中的所有列都将始终有一个名称(它可以是“”或NA),所以为什么不使用有意义的名称呢?(即使是V29也比什么都没有好。)

嗨,用户1532587,欢迎访问该网站!实际上,这个网站更多的是统计问题,而不是编程问题。StackOverflow有很多R程序员,他们有时能比我们更快更好地回答这些问题,尽管你也可能在这里得到答案。你能发布一个链接到
1.csv
?文件中可能有一些更独特的东西,我们从粘贴中看不到。这里有一个链接。这是实际文件,我使用的是实际版本,是的。你的问题不清楚。您想用第一行中的名称命名前28列数据吗?是的,我们的想法是取第一行的名称,然后取标准变量,如V1、V2或其他什么-否则有办法跳过这些吗?
names(D) <- header
names(D)[29:43] <- ""
> D[[""]]
NULL
head(D)
# skipped most of the output, keeping only column 42:
  structure(c("-1", "70", ".5", "70", "266", "70"), class = "AsIs")
1                                                                -1
2                                                                70
3                                                                .5
4                                                                70
5                                                               266
6                                                                70
D[1:3,29:31]
                             .1                  .2
1 C_COMPONENTE_LIQ_DESDE_CO 243 LIQUIDACION TOPE CO
2 C_COMPONENTE_LIQ_DESDE_CO 243         RESIDUAL CO
3 C_COMPONENTE_LIQ_DESDE_CO 243         RESIDUAL CO