2013-09-04 5 views
0

У меня есть кадр данных в R, скажем f1. Я хочу создать еще один фрейм данных f2, который имеет имена столбцов (заголовок) в f1 как имена строк f2. Я знаю, что в f1 есть 300 имен, и вы хотите присвоить цвет «# ff0000» первым 200 и цвету «# 0000ff» до последних 100. Как я могу это сделать? В результате должно выглядеть,R dataframe create

name1 "#ff0000" 
name2 "#ff0000" 
... 
name201 "#0000ff" 
name202 "#0000ff" 
... 

ответ

1

В rbind s и s cbind в вашем ответе не нужны. Это однострочный, используя data.frame.

f2 = data.frame(color = c(rep("#ff0000", 200), rep("#0000ff", 100)), 
    row.names = names(f1), 
    stringsAsFactors = FALSE) 
1
mydata<-mtcars 
mydata1<-data.frame(names(mydata)) 
mydata1$col<-c(rep("col1",7),rep("col2",4)) 
rownames(mydata1)<-mydata1$names.mydata 
mydata1$names.mydata.<-NULL 

> mydata1 
     col 
mpg col1 
cyl col1 
disp col1 
hp col1 
drat col1 
wt col1 
qsec col1 
vs col2 
am col2 
gear col2 
carb col2 
-1

я понял это сам. Сначала получите имена Ф1 находится вне, name=col.names(f1)

Затем подготовить структуру цвета, color=rbind(cbind(rep("#ff0000",200)),cbind(rep("#0000ff",100)))

Наконец создать фрейм данных final=data.frame(color,row.names=name)