R数据帧创建

时间:2013-09-04 16:18:04

标签: r dataframe rbind cbind

我在R中有一个数据框,比如说f1。我想创建另一个数据框f2,其中f1中的列名称(标题)为f2的行名。我知道f1中有300个名字,并希望将颜色“#ff0000”分配给前200个,并将颜色“#0000ff”分配给最后100个。我该怎么做?结果应该是,

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

3 个答案:

答案 0 :(得分: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)

您的答案中的rbindcbind是不必要的。这是一个单行,使用data.frame

f2 = data.frame(color = c(rep("#ff0000", 200), rep("#0000ff", 100)),
    row.names = names(f1),
    stringsAsFactors = FALSE)

答案 2 :(得分:-1)

我自己已经弄清楚了。 首先得到f1的名字,name=col.names(f1)

然后准备颜色结构color=rbind(cbind(rep("#ff0000",200)),cbind(rep("#0000ff",100)))

最后创建数据框final=data.frame(color,row.names=name)