2015-09-14 4 views
3

Допустим, у меня есть следующие данные рамки:преобразования значений строк в именах столбцов в г

a<-data.frame(A=3,B=9,C=10,D=6) 
b<-data.frame(A="i3",B="i9",C="i10",D="i6") 
c<-data.frame(A=3,B=9,C=10,D=6) 
d<-data.frame(A=3,B=9,C=10,D=6) 
e<-rbind(a,b,c,d) 
print(e) 
    A B C D 
1 3 9 10 6 
2 i3 i9 i10 i6 
3 3 9 10 6 
4 3 9 10 6 

Я пытаюсь преобразовать данные кадр таким образом, чтобы значения во втором ряду, так что они становятся имена столбцов данных рамы, так что следующий будет дали:

print(f) 
    i3 i9 i10 i6 
1 3 9 10 6 
3 3 9 10 6 
4 3 9 10 6 

Я написал следующее:

f<-e[-2,] 
colnames(f)<-e[2,] 

Который, кажется, s для работы с этим небольшим кадром данных; однако для больших кадров данных он, похоже, не работает должным образом. Например, следующий отрывок из больших данных рамы:

print(results2t) 
        V1 V2 V3 
analysisID   118 118 118 
Node    20 20 20 
Dependent_Variable i1 i1 i1 
Item    b1 b17 i10 
Overall_B_value -.03 .04 -.17 
Overall_Std.Error .04 .08 .05 

Я побежал следующее:

results2t2<-results2t[-4,] 
colnames(results2t2)<-results2t["Item",] 

, а также

colnames(results2t2)<-results2t["Item",] 

и ни работы (я пытаясь получить значения в строке «Item» как имена столбцов), так как я получаю 13 для всех имен столбцов:

print(results2t2) 
        13 13 13 
analysisID   118 118 118 
Node    20 20 20 
Dependent_Variable i1 i1 i1 
Overall_B_value -.03 .04 -.17 
Overall_Std.Error .04 .08 .05 

Любые мысли?

+1

Что происходит, когда вы пытаетесь его на большем фрейме данных? –

+2

Пожалуйста, укажите пример, в котором он не работает. – Jaap

+1

И укажите, что именно не так с выходом, который вы получаете. – Heroka

ответ

2

следующие работы для меня:

#make sure you use unlist to convert the data.frame to a vector containing 
#the wanted names 
colnames(results) <- unlist(results[row.names(results)=='Item',]) 
#remove the unneeded row 
results   <- results[!row.names(results)=='Item',] 

Выход:

> results 
        b1 b17 i10 
analysisID   118 118 118 
Node     20 20 20 
Dependent_Variable i1 i1 i1 
Overall_B_value -.03 .04 -.17 
Overall_Std.Error .04 .08 .05 
+0

Это сработало спасибо! – costebk08

+0

Добро пожаловать :). Рад, что я могу помочь! – LyzandeR

2

Вам просто нужно unlist:

colnames(results2t2)<-unlist(results2t["Item",]) 
results2t2 
#      b1 b17 i10 
# analysisID   118 118 118 
# Node     20 20 20 
# Dependent_Variable i1 i1 i1 
# Overall_B_value -.03 .04 -.17 
# Overall_Std.Error .04 .08 .05 
Смежные вопросы