2014-12-17 8 views
2

data.frame의 각 열에 첫 번째 열 (classfactor)의 값을 곱해야합니다.data.frame의 모든 열에 첫 번째로 곱합니다.

이것은 내 data.frame

sample classfactor 01.BA.V 01.BA.VG 01.BO.VG 01.PR.O 01.TO.VG 02.BA.O 02.BA.V 
AB 0.730 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0 0.00000000 
AC 0.730 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0 0.00000000 
AB 0.002 0.000000000 0.000000000 0.000749929 0.000000000 0.000000000 0 0.00000000 
CC 0.730 0.081599145 0.093453018 0.031247022 0.015987076 0.036212483 0 0.02537884 
BB 0.730 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0 0.00000000 
AA 0.730 0.001533075 0.000108666 0.000000000 0.000364526 0.000241417 0 0.00006340 

그것은 146 행과 155 열이 있습니다.

어떻게해야하는지 알 수 없습니다. 어떤 제안?

답변

2

글쎄, 당신은 루프로 시작할 수 있습니다.

for(i in 2:length(names(data.frame))) { 
    data.frame[,i] <- data.frame[, 1] * data.frame[, i] 
} 

당신만큼 작은 데이터 세트에서 이것은 상당히 빠르다. 내가 틀리지 않는 경우

6

, 당신은 (classfactor 실제로 두 번째 열입니다)

df[-(1:2)] <- df[["classfactor"]] * df[-(1:2)] 

df가 데이터 프레임과 첫 번째 열입니다

sample하다 할 수 있습니다.

관련 문제