2017-12-05 4 views
1

두 가지 수준의 요인으로 data.frame의 각 열 : 나는 수준을 정의하는 각 열에 요인 기능을 적용되지만나는 <code>data.frame</code> 다음 한

# Define data.frame 
    u<-data.frame(matrix(c(0,0,0,1,0,1,1,1,0), nrow=3)) 
# Define each column as a factor with two levels 
    r <- as.data.frame(apply(u,2,function(x) factor(x, levels = c(0,1)))) 

, 첫 번째 열은 그들 중 하나를 제공합니다 (0, 열에있는 유일한 값) 및 나는 그것을 두 가지 수준 (0과 1)을 가진 요소로 만들고 싶습니다.

해결 방법에 대한 의견이 있으십니까?

문제는 apply 함수를 사용하면 같은 값을 가진 열에 문제가 있다는 것입니다. 수동으로하면 문제가 없습니다. 대신

답변

1

사용 lapply는 :

r <- data.frame(lapply(u, function(x) factor(x, levels = c(0,1)))) 

모든 데이터 프레임은리스트의 목록, 그래서이 자연스럽게 작동합니다.

applymean, sum, median 같은 기능을 위해 잘 작동하지만, 당신은 작업중인 데이터 프레임을 조정 wan't 경우 lapply이 더 적합합니다.

+0

작동합니다! 고마워요 – R18

+0

다행히 도왔습니다! –