我在R中有一个数据框,比如说f1。我想创建另一个数据框f2,其中f1中的列名称(标题)为f2的行名。我知道f1中有300个名字,并希望将颜色“#ff0000”分配给前200个,并将颜色“#0000ff”分配给最后100个。我该怎么做?结果应该是,
name1 "#ff0000"
name2 "#ff0000"
...
name201 "#0000ff"
name202 "#0000ff"
...
答案 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)
您的答案中的rbind
和cbind
是不必要的。这是一个单行,使用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)