2017-11-26 1 views
0

첫 번째 열이 각 상태의 이름 인 데이터 프레임이 있습니다. 마지막 열은 범주 형 변수입니다. 이 둘을 제외한 다른 모든 열을 크기를 조정하려고합니다. 나중에 데이터 프레임에 마지막 열을 다시 추가하려고합니다. 나는 마지막 열의 이름이 사라진 dataframe을 다시 얻을 때 여기에 내가 데이터 프레임에서 추가 된 변수의 이름 바꾸기

data_new <- cbind(scale(data[,2:11], FALSE, apply(data[,2:11], 2, sd)), data[ ,c(12)]) 

을 did- 무엇을 (당신이 4,4,4,1,3,2와 열을 참조하는 경우 ....).
  violcr propcr ympct medinc ymunemp subsabuse  gini ineqratio school bachdeg 
[1,] 3.3178283 5.520019 14.91484 4.926599 5.926865 9.942629 24.34441 2.297458 7.420143 5.293805 4 
[2,] 4.9355995 4.794578 19.33284 8.132947 3.660475 13.367018 21.36148 1.773477 6.497878 6.542936 4 
[3,] 3.1043508 5.554588 15.76717 5.653173 4.779743 12.653053 23.92486 2.754263 5.925069 6.270668 4 
[4,] 3.7269288 5.798660 15.19722 4.672179 4.334980 10.167396 24.11929 2.767698 8.379425 4.943795 4 
[5,] 3.0748521 4.240596 16.55721 6.962185 5.279658 11.515997 25.01979 3.882839 5.351711 7.171495 1 
[6,] 2.3994870 4.395204 16.06272 6.731090 3.732236 13.591785 23.45414 2.700521 5.250990 8.690245 3 
[7,] 1.8390115 3.336054 15.09004 7.914420 5.419199 11.820093 25.60819 5.723492 7.062003 7.554442 2 

나는

colnames(data_new)[,12] <- "guns" 

는 그러나, 나는 오류가 12 칼럼 -에게 이름이 명령을 사용하여 시도했다. 마지막 열을 포함하여 모든 열의 이름을 바꾼다면 작동하지 않습니다. 누군가이 문제를 해결하는 방법을 도울 수 있습니까?

+1

당신은'data [12]'즉'cbind (scale (data [, 2 : 11) 'data [, 12]'가'vector '로 변환하기 때문에'data [12] '가 여전히 존재하기 때문에 FALSE, apply (data [, 2 : 11], 2, sd)), data [12])' a data.frame – akrun

+1

그레이트. 감사! –

+1

'colnames' 명령을 시도 할 때 발생하는 에러는 무엇입니까? 'cbind (..., guns = data [, 12])'를 사용하여 이름을 지정할 수 있어야합니다. – MrGumble

답변

0

은 무엇 당신이 할 것은 할당 한 다음 새 벡터를 생성하고있다

colnames(data_new) <- c(colnames(data_new)[1:11], "guns") 

을 시도합니다. 나는 col 셀렉터 data_new[,n]이 데이터의 부분 집합 (즉, 하나의 col n)을 얻는다 고 생각하지만 표제에는 도움이되지 않는다.

관련 문제