根据该行R中的名称将变量添加到特定行中的数据框

时间:2018-03-28 12:06:37

标签: r dataframe append

我正在尝试添加与此地图数据框中特定国家/地区相对应的特定变量。

library(maps)

countries <- c("Australia", "South Africa", "India", "Mexico", "USA", "Russia")
genes <- c("gene1","gene2","gene3","gene4","gene5","gene6")

bounds <- map("world", countries, fill = TRUE, plot = FALSE)

bounds$genes <- genes

然而,这只是添加一列“基因”并将变量放在前六行中,而不是相应的国家。因此,如果我打电话给印度,它应该返回gene3。我在StackOverflow中找不到一个简单的解决方案。

1 个答案:

答案 0 :(得分:1)

你可以这样做......

bounds$genes <- genes[match(gsub("\\:.*", "", bounds$names), countries)]

bounds$names的格式为country:region,因此gsub会移除:之后的位,然后match会返回相应的索引。