2012-07-19 3 views
1

R의 파일에 다른 데이터 유형의 값을 쓸 수 있습니까? 현재, 나는 간단한 벡터를 사용하고 다음과 같이 그러나다른 데이터 유형 값을 파일에 쓰기 R

> vect = c (1,2, "string") 
> vect 
[1] "1"  "2"  "string" 
> write.table(vect, file="/home/sampleuser/sample.txt", append= FALSE, sep= "|") 

, vect 문자열의 벡터가 내용을 인용 형태에있는 다음 한 파일을 열어, 지금부터 :

"x" 
"1"|"1" 
"2"|"2" 
"3"|"string" 

그것을인가 항목 12의 데이터 유형을 문자열 대신 숫자 값으로 처리하는 것은 불가능합니다. 그래서 내 예상 된 결과는 다음과 같습니다 또한

"x" 
"1"|1 
"2"|2 
"3"|"string" 

, 나는 왼쪽 값을 가정하고 "1", "2"및 "3"은 벡터 인덱스는? 나는 첫번째 줄이 "x"인 방법을 이해하지 못했습니까?

+3

벡터에는 모두 동일한 데이터 유형이 포함되어야합니다. 혼합하고 일치 시키려면 목록을 사용해야합니다. – Dason

+1

첫 줄이''x "'인 이유는'? write.table'의"Arguments "부분, 특히'col.names' 인수 ... –

답변

1

단순히 출력 파일에서 모든 인용문을 제거하면 문제가 해결되는지 궁금합니다. 간단합니다 : write.table() 전화에 quote=FALSE을 추가하십시오.

write.table(vect, file="/home/sampleuser/sample.txt", 
      append=FALSE, sep="|", quote=FALSE) 

x 
1|1 
2|2 
3|string 

또한 원하는 경우 열과 행의 이름을 제거 할 수 있습니다. 하지만 이제는 단 하나의 열로 된 테이블이 있기 때문에 구분 문자가 나타나지 않습니다.

write.table(vect, file="/home/sampleuser/sample.txt", append=FALSE, sep="|", 
      quote=FALSE, row.names=FALSE, col.names=FALSE) 

1 
2 
string 
+0

에 설명되어 있습니다. 그러나 문자열 중 아무 것도 그와 같이 표시되지 않습니다 , 권리? 목표가 특정 방식으로 보이는 출력인지 또는 원하는 데이터 유형을 사용하여 변수를 저장했는지에 따라 달라질 수 있습니다. –

1

벡터 및 행렬의 경우 R은 모든 데이터 유형이 동일해야합니다. 기본적으로 R은 벡터/행렬의 모든 데이터를 동일한 형식으로 강제 변환합니다. R은 특정 유형의 데이터를 덜 구체적인 데이터 유형으로 강제 변환합니다. 이 경우 벡터에 저장된 항목은 "문자"유형으로 합리적으로 표현 될 수 있으므로 벡터의 숫자 부분을 자동으로 강제 변환하여 해당 데이터 유형에 맞 춥니 다.

@Dason에 따르면, 원하는 것이 아닌 경우 목록을 사용하는 것이 좋습니다.

또는 다른 열에 다른 데이터 형식을 저장할 수있는 data.frame을 사용할 수 있습니다 (내부적으로 R은 data.frames를 목록으로 저장하므로 다른 옵션이 될 수 있습니다).