2010-08-11 7 views

답변

4

데이터 프레임 (df)이 실제로는 NA와 가비지를 제외한 모든 정수이면 다음과 같이 변환합니다.

df2 <- data.frame(lapply(df, function(x) as.numeric(as.character(x)))) 

강요에 의해 도입 된 NAs에 대한 경고가 표시되지만 NAs로 바뀌는 모든 숫자가 아닌 문자열 일뿐입니다.

다음 코드도 작동하며보다 간결하지만 느리게 실행됩니다.

df2 <- apply(df, 2, function(x) as.numeric(as.character(x))) 

선택한 열을 변환하려는 경우 약간 더 복잡한 명령을 사용할 수 있습니다. 먼저 변환하려는 열을 파악해야합니다. 변경하려는 열의 논리 벡터로 저장할 수도 있습니다.

df2 <- cbind(df[,!columnsToChange], apply(df[,columnsToChange], 2, function(x) as.numeric(as.character(x))) 

이렇게하면 문제가 발생할 수 있지만 충분히 쉽게 원하는대로 얻을 수 있습니다.

3

먼저 data.frame 인 경우 형식이 열마다 동일합니다. 그래서 제 3 열의 클래스에 관해서는 class(data[,3])과 같은 것을하십시오. 그런 다음 주어진 열에서 as.numeric() 등을 사용하여 변환 할 수 있습니다. 또는 해당 열을 바꾸려는 경우에 대비하여 질문마다 data[,3] <- NA을 입력하십시오.

관련 문제