데이터 프레임을 열 이름으로 정렬 할 때 이상한 동작을 관찰하고 있습니다. 기본적으로 데이터 프레임에 하나의 열만 있으면 순서에 따라 열 이름이 손실되지만 여러 열이 있으면 발생하지 않습니다. 이 샘플 코드 :데이터 프레임을 R 열로 정렬
df <- data.frame(c("1", "2", "3"), c("4", "5", "6"), c("7", "8", "9"))
colnames(df) <- c("A", "C", "B")
df <- data.frame(df[,order(colnames(df))])
print(colnames(df))
df <- data.frame(c("1", "2", "3"))
colnames(df) <- c("A")
df <- data.frame(df[,order(colnames(df))])
print(colnames(df))
코드, 데이터 프레임 df
의 첫 번째 부분에서는, 그 열을 유지하지만, 두 번째 부분에 열 이름을 잃는다.
분명히 하나의 열만 있으면 열 수를 확인하고 이름을 다시 가져올 수 있지만 나쁜 것처럼 보입니다.
누구든지 문제를 해결할 수있는 더 좋은 방법을 알고 있습니까?
좋은 오래된'drop' 문제. –
이 인스턴스의 더 나은 방법은리스트 구문을 사용하는 것입니다 :'df [order (colname (df))]' 'df [order (colnames (df))]]는 하나의 열 data.frame의 인스턴스에리스트 구조를 드롭하는 반면,리스트 구조와 관련된 이름들을 보존 할 것이다. – lmo