0

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

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

3 回答 3

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
于 2013-09-04T16:30:18.277 回答
1

您的答案中的rbinds 和s 是不必要的。cbind这是一个单线,使用data.frame.

f2 = data.frame(color = c(rep("#ff0000", 200), rep("#0000ff", 100)),
    row.names = names(f1),
    stringsAsFactors = FALSE)
于 2013-09-04T16:44:54.720 回答
-1

我自己已经弄清楚了。先把f1的名字弄出来,name=col.names(f1)

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

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

于 2013-09-04T16:36:01.263 回答