2016-10-27 1 views
0

.csv 파일을 읽을 때 read.csv()을 사용하려했지만 내 열 중 3 개에 부동 소수점 값이 들어 있습니다. R이이를 요인으로 간주하지만 원래 값을 유지하여 정확하게 비교할 수 있기를 바랍니다. 설명서를 읽으려고했으나 stringsasfactors = FALSE을 설정하는 옵션이 있습니다. 그렇다면 내 열 요소에 소수 자리를 유지하지만, 그들은 서로 비교할 수있는 숫자가 아닙니다.R 버전 3.3.1, read.csv()를 사용하여 소수로 강제 변환하지 않음

예를 들어, 내 열에 3.1, 4.2, 5.3 값이 있으면 R은이를 요인으로 강제합니다. 내가 as.numeric()을 호출하면 3, 4, 5로 찌그러 뜨 렸습니다. 어떻게 읽었을 때 부동 소수점 값으로 유지할 수 있습니까?

+0

[재현 가능한 예]를 제공하는 데이터 및/또는 코드를 포함시킬 수 있습니까? (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? R이 열을 factor로 강제 변환하면 그 열에 숫자로 해석 될 수없는 다른 것이 있기 때문입니다. 변환을 원한다면'as.numeric (as.factor (x))'가 필요합니다 (이것은 R FAQ입니다). –

+0

죄송합니다.이 질문에 회신하지 않았습니다. 나는 그동안 다른 기능을 연마하고 있었고 전선 아래에있었습니다. 그래도 도와 ​​줘서 고마워! –

답변

0

제 경험상 as.numeric(as.character(data))이 필요합니다. 이는 요인이 특정 문자열과 반복되는 문자열로 나열되기 때문입니다. 모든 글자, 숫자 및 기호는 요소 내의 문자로 간주됩니다.

숫자로 바로 가면 요소 문자열에서 소수점 이하의 마침표와 같은 일부 부분이 변환을 방해 할 가능성이 있습니다. 이 경우에 반올림합니다. factor에서 문자로, 그 다음 숫자로 떨어 뜨려보십시오!

+0

이것은 정확히 그 것이었다! 나는 그것을 성격에 그리고 THEN을 숫자로 생각할 생각이 없었을 것이다. 당신의 도움을 주셔서 감사합니다. –

+0

도움이 될 수있어서 기쁩니다. 나는 그런 많은 순간을 직접 가지고 있었다. – sconfluentus

관련 문제