我在 R 中有一个数据框,比如 f1。我想创建另一个数据框 f2,其中 f1 中的列名(标题)作为 f2 的行名。我知道 f1 中有 300 个名称,并且想将颜色“#ff0000”分配给前 200 个并将颜色“#0000ff”分配给最后 100 个。我该怎么做?结果应该看起来像,
name1 "#ff0000"
name2 "#ff0000"
...
name201 "#0000ff"
name202 "#0000ff"
...
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
您的答案中的rbind
s 和s 是不必要的。cbind
这是一个单线,使用data.frame
.
f2 = data.frame(color = c(rep("#ff0000", 200), rep("#0000ff", 100)),
row.names = names(f1),
stringsAsFactors = FALSE)
我自己已经弄清楚了。先把f1的名字弄出来,name=col.names(f1)
然后准备颜色结构,color=rbind(cbind(rep("#ff0000",200)),cbind(rep("#0000ff",100)))
最后创建数据框,final=data.frame(color,row.names=name)