【发布时间】:2018-07-25 01:00:27
【问题描述】:
我有一个小数据框:
gene_symbol<-c("DADA","SDAASD","SADDSD","SDADD","ASDAD","XCVXCVX","EQWESDA","DASDADS")
panel<-c("growth","growth","growth","growth","big","big","big","small")
Gene_states22<-data.frame(gene_symbol,panel)
还有一个带颜色的向量:
colors<-c("red","green","yellow").
我想创建一个这样的数据框:
gene_symbol panel color
1 DADA growth red
2 SDAASD growth red
3 SADDSD growth red
4 SDADD growth red
5 ASDAD big green
6 XCVXCVX big green
7 EQWESDA big green
8 DASDADS small yellow
简单地说,添加一个新列,其中“增长”匹配“红色”,“大”匹配“绿色”,“小”匹配“黄色”。问题是面板名称每次都不会相同,例如它们可能是“bob”、“sam”、“bill”,并且最多可能有 8 个不同的名称(和颜色)。数据框的行也会有所不同。
【问题讨论】:
-
您还可以创建一个新的数据框,其列为
panel和growth,然后使用match -
同意@RonakShah 和下面的答案。我会阅读 R 中的连接操作,无论是使用包含的
merge函数还是附加包 - 请参阅这个经典的老问题:How to join (merge) data frames (inner, outer, left, right)? - 了解更多详细信息。 -
BTW
colors在你的情况下是一个向量,而不是一个列表。
标签: r