2016-09-05 2 views
0

csv 파일을 읽는 동안 오류가 발생했습니다. 라인의 처음 몇 줄 아래와 같이 주어진다 :CSV 파일을 읽는 중 오류가 발생했습니다.

"","1.CEL","2.CEL","3.CEL","4.CEL" 
"1_s_at",NA,NA,NA,NA 
"2_at",NA,NA,NA,NA 
"3_at",NA,NA,NA,NA 
"4_at",NA,NA,NA,NA 
"5_g_at",NA,NA,NA,NA 
"6_at",NA,NA,NA,NA 
"7_at",NA,NA,NA,NA 

명시 헤더의 존재를 특정하는 csv.file에게

test <- read.csv(file='/home/userxyz/test.csv') 
head(test) 
#  X X1.CEL X2.CEL X3.CEL X4.CEL 
#1 1_s_at  NA  NA  NA  NA 
#2 2_at  NA  NA  NA  NA 
#3 3_at  NA  NA  NA  NA 
#4 4_at  NA  NA  NA  NA 
#5 5_g_at  NA  NA  NA  NA 
#6 6_at  NA  NA  NA  NA 

읽기.

test <- read.csv(file='/home/userxyz/test.file', header=T) 
head(test) 
#   X X1.CEL X2.CEL X3.CEL X4.CEL 
#1 1_s_at  NA  NA  NA  NA 
#2 2_at  NA  NA  NA  NA 
#3 3_at  NA  NA  NA  NA 
#4 4_at  NA  NA  NA  NA 
#5 5_g_at  NA  NA  NA  NA 
#6 6_at  NA  NA  NA  NA 

명시 적으로 row.names를 지정하는 동안 작동하지 않았습니다.

test <- read.csv(file='/home/userxyz/test.file', row.names=T) 
#Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
# invalid 'row.names' specification 

read.table

, read.delim 기능도 바라 보았다되고있다.

row.names에 특수 문자로 인해 오류가 있습니까?

+0

'row.names'이 예상됩니다에게로 부울이 아닌 벡터 및 –

+0

@MartinDabbelJuSmelter 파일에 rownames가 포함되도록 지정하는 방법 ? – Prradep

+0

@ ZheyuanLi 예. 그러나 실제 파일에 rownames로 존재합니다. – Prradep

답변

1

첫 번째 열을 행 이름으로 읽으려고합니다. 시도 : 정확히 헤더를 유지하려면,

x <- '"","1.CEL","2.CEL","3.CEL","4.CEL" 
"1_s_at",NA,NA,NA,NA 
"2_at",NA,NA,NA,NA 
"3_at",NA,NA,NA,NA 
"4_at",NA,NA,NA,NA 
"5_g_at",NA,NA,NA,NA 
"6_at",NA,NA,NA,NA 
"7_at",NA,NA,NA,NA' 

read.csv(text = x, row.names = 1L) 

#  X1.CEL X2.CEL X3.CEL X4.CEL 
#1_s_at  NA  NA  NA  NA 
#2_at  NA  NA  NA  NA 
#3_at  NA  NA  NA  NA 
#4_at  NA  NA  NA  NA 
#5_g_at  NA  NA  NA  NA 
#6_at  NA  NA  NA  NA 
#7_at  NA  NA  NA  NA 

read.csv(text = x, row.names = 1L, check.names = FALSE) 

#  1.CEL 2.CEL 3.CEL 4.CEL 
#1_s_at NA NA NA NA 
#2_at  NA NA NA NA 
#3_at  NA NA NA NA 
#4_at  NA NA NA NA 
#5_g_at NA NA NA NA 
#6_at  NA NA NA NA 
#7_at  NA NA NA NA 

row.name에 대해서는 수행 ?read.csv을 읽어

row.names: a vector of row names. This can be a vector giving the 
      actual row names, or a single number giving the column of the 
      table which contains the row names, or character string 
      giving the name of the table column containing the row names. 
+0

명확한 설명에 감사드립니다! 'row.names = 1L'은 내가 배운 새로운 접근법입니다. – Prradep