2016-11-21 2 views
0

'배'를 입력하도록 강요 할 수없고, I가와 [0,1] 모든 열였다 가지고R 스크립트까지 후 [0,1] (목록) 개체 I 6 열 셋이

ranging<-function(x){(x-min(x))/(max(x)-min(x))} 
dfNorm<- lapply(df, ranging) 

그때 나는 다음과 같은 메시지가 통계 패키지에서 kmeans 기능을 실행하려고 : 나는이 문제에 대한 많은 질문을 보았다하지만 내 문제에 대한 해결책을 알아낼 수 없습니다

Error: (list) object cannot be coerced to type 'double' 

. 대신 일반 데이터 집합으로, dfNorm는 다음과 같은 형태로 열이

$AGE 
    [1] 0.47457627 1.00000000 0.10169492 0.54237288 0.37288136 0.64406780 0.06779661 0.61016949 0.77966102 0.15254237 0.38983051 0.06779661 0.22033898 0.69491525 0.72881356 0.72881356 0.74576271 0.50847458 0.03389831 0.01694915 
[21] 0.01694915 0.64406780 0.16949153 0.55932203 0.88135593 0.57627119 0.54237288 0.05084746 0.86440678 0.79661017 0.23728814 0.37288136 0.13559322 0.25423729 0.25423729 0.25423729 0.66101695 0.44067797 0.67796610 0.05084746 
[41] 0.50847458 0.16949153 0.18644068 0.03389831 0.44067797 0.42372881 0.30508475 0.13559322 0.08474576 0.76271186 0.25423729 0.59322034 0.69491525 0.49152542 0.83050847 0.33898305 0.10169492 0.55932203 0.08474576 0.35593220 
[61] 0.69491525 0.10169492 0.64406780 0.66101695 0.91525424 0.77966102 0.45762712 0.47457627 0.54237288 0.64406780 0.23728814 0.66101695 0.32203390 0.11864407 0.25423729 0.03389831 0.25423729 0.37288136 0.42372881 0.79661017 
[81] 0.40677966 0.05084746 0.64406780 0.18644068 0.49152542 0.67796610 0.71186441 0.01694915 0.35593220 0.11864407 0.27118644 0.03389831 0.20338983 0.55932203 0.47457627 0.06779661 0.42372881 0.27118644 1.00000000 0.93220339 
[101] 0.05084746 0.15254237 0.23728814 0.62711864 0.74576271 0.88135593 0.77966102 0.45762712 0.06779661 0.71186441 0.88135593 0.05084746 0.11864407 0.22033898 0.55932203 0.84745763 0.35593220 0.28813559 0.89830508 0.10169492 
[121] 0.61016949 0.18644068 0.81355932 0.05084746 0.44067797 0.37288136 0.25423729 0.91525424 0.74576271 0.83050847 0.25423729 0.55932203 0.45762712 0.81355932 0.13559322 0.49152542 0.67796610 0.45762712 0.30508475 0.08474576 
[141] 0.11864407 0.06779661 0.37288136 0.44067797 0.69491525 0.23728814 0.77966102 0.47457627 0.93220339 0.15254237 0.64406780 0.69491525 0.77966102 0.05084746 0.69491525 0.61016949 0.37288136 0.66101695 0.77966102 0.71186441 
[161] 0.03389831 0.27118644 0.66101695 0.11864407 0.61016949 0.10169492 0.27118644 0.40677966 0.54237288 0.71186441 0.27118644 0.38983051 0.74576271 0.13559322 0.27118644 0.86440678 0.11864407 0.13559322 0.38983051 0.27118644 
[181] 0.47457627 0.89830508 0.15254237 0.03389831 0.50847458 0.81355932 0.44067797 0.01694915 0.84745763 0.16949153 0.30508475 0.37288136 0.69491525 0.27118644 0.13559322 0.01694915 0.76271186 0.37288136 0.49152542 0.13559322 
[201] 0.27118644 0.59322034 0.13559322 0.30508475 0.06779661 0.44067797 0.67796610 0.77966102 0.61016949 0.69491525 0.22033898 0.37288136 0.01694915 0.61016949 0.11864407 0.44067797 0.32203390 0.11864407 0.88135593 0.00000000 
[221] 0.13559322 0.67796610 0.05084746 0.27118644 0.28813559 0.66101695 0.86440678 0.71186441 0.23728814 0.20338983 0.33898305 0.27118644 0.23728814 0.10169492 0.05084746 0.47457627 0.88135593 0.28813559 0.79661017 0.76271186 
[241] 0.35593220 0.32203390 0.47457627 0.86440678 0.52542373 0.64406780 0.62711864 0.08474576 0.81355932 0.27118644 0.33898305 0.13559322 0.79661017 0.66101695 0.91525424 0.76271186 0.66101695 0.10169492 0.76271186 0.93220339 
[261] 0.13559322 0.22033898 0.72881356 0.66101695 0.44067797 0.33898305 0.32203390 0.06779661 0.03389831 0.03389831 0.61016949 0.69491525 0.28813559 0.16949153 0.38983051 0.79661017 0.83050847 0.08474576 0.40677966 0.11864407 
[281] 0.67796610 0.18644068 0.35593220 0.27118644 0.59322034 0.88135593 0.20338983 0.35593220 0.69491525 0.23728814 0.27118644 0.38983051 0.01694915 0.66101695 0.52542373 0.81355932 0.67796610 0.01694915 0.64406780 0.52542373 

나는까지 내 dataframe에서 목록의 집합되었다고 생각? 다시 데이터 프레임으로 변환하는 방법에 대한 도움이 필요하십니까? []

df[] <- lapply(df, ranging) 

이를 사용하여

답변

2

시도는 그 크기를 유지 dataframe에 목록에서 강제됩니다.

1

이것은 목록 개체를 반환하는 lapply를 사용하고 있기 때문입니다.

이런 식으로 뭔가 작업을해야합니다 :

> set.seed(1000) 
> df <- as.data.frame(matrix(rnorm(600),ncol = 6)) 
> ranging<-function(x){(x-min(x))/(max(x)-min(x))} 
> dfNorm<- as.data.frame(apply(as.matrix(df),2,ranging)) 
> head(dfNorm) 
     V1  V2  V3  V4 
1 0.5055243 0.2849368 0.5248265 0.4971919 
2 0.4254890 0.4827048 0.6406599 0.4289153 
3 0.5934110 0.5796791 0.5231206 0.3399791 
4 0.5956384 0.5592775 0.3369328 0.4250189 
5 0.4487460 0.2521909 0.5644026 0.1761759 
6 0.3323858 0.4641836 0.3847123 0.4604454 
     V5  V6 
1 0.7301030 0.6333670 
2 0.5510546 0.2246277 
3 0.6688892 0.5297624 
4 0.5433689 0.8144769 
5 1.0000000 0.6710413 
6 0.4461234 0.4734814 
> class(dfNorm) 
[1] "data.frame"