R 如何将具有某个索引的每一行转换为另外两行?

R 如何将具有某个索引的每一行转换为另外两行?,r,format,R,Format,我得到了这个数据集:。我正在用它做一个choropleth,但是有些名称与world数据框不匹配(来自mapproj,使用ggplot2中的map\u数据转换)。其中一行是Trindad and Tobago,我想用两行(如果有两个匹配项,则为四行;或者六行…)替换它,除了这个细节–名称之外,其他行与原始行相同。一个应命名为Trindad,另一个应命名为Tobago 我想可能有一个函数(如果它是整行,我会使用separate_rows()fromtidyr)听起来像这样:function_nam

我得到了这个数据集:。我正在用它做一个choropleth,但是有些名称与
world
数据框不匹配(来自
mapproj
,使用
ggplot2
中的
map\u数据转换)。其中一行是
Trindad and Tobago
,我想用两行(如果有两个匹配项,则为四行;或者六行…)替换它,除了这个细节–名称之外,其他行与原始行相同。一个应命名为
Trindad
,另一个应命名为
Tobago

我想可能有一个函数(如果它是整行,我会使用
separate_rows()
from
tidyr
)听起来像这样:
function_name(“Trindad and Tobago”,sep=“and”)
,但我不知道

这些是我另外加载的包(最好使用这些包,而不是其他包,或者至少是
tidyverse
中的某个包):

library(ggplot2)
library(dplyr)
library(tidyr)
library(readr)
library(mapproj)

我意识到我问这个问题的方式不是很清楚,所以如果我能以任何方式提供帮助…

如果你能用你想分离的国家的名称创建一个TIBLE(在这里称为新名称\u tbl),你可以将其加入到你的新冠肺炎数据中:

library(tibble)
library(tidyr)


covid_data <- tibble::tribble(
  ~location, ~cases,
  "Afghanistan",  12,
  "USA", 34,
  "Trindidad and Tobago", 45
)



new_names_tbl <- tibble::tribble(
  ~location, ~new_names_variable,
  "Trindidad and Tobago", "Trinidad",
  "Trindidad and Tobago", "Tobago"
  
)

covid_data %>% 
  left_join(new_names_tbl, by = c("location" = "location")) %>% 
  mutate(location = case_when(is.na(new_names_variable) ~ location, TRUE ~ new_names_variable)) %>%
  select(-new_names_variable)
库(TIBLE)
图书馆(tidyr)
新冠病毒数据%
mutate(location=case_当(is.na(new_names_variable)~location,TRUE~ new_names_variable))%>%
选择(-new_names_variable)
在这里,我明确指出,coid\u data新名称\u tbl将由变量位置连接。
这应该可以做到!

如果您可以创建一个包含您想要分离的国家名称的TIBLE(这里称为新名称\u tbl),您可以将其加入到您的新冠肺炎数据中:

library(tibble)
library(tidyr)


covid_data <- tibble::tribble(
  ~location, ~cases,
  "Afghanistan",  12,
  "USA", 34,
  "Trindidad and Tobago", 45
)



new_names_tbl <- tibble::tribble(
  ~location, ~new_names_variable,
  "Trindidad and Tobago", "Trinidad",
  "Trindidad and Tobago", "Tobago"
  
)

covid_data %>% 
  left_join(new_names_tbl, by = c("location" = "location")) %>% 
  mutate(location = case_when(is.na(new_names_variable) ~ location, TRUE ~ new_names_variable)) %>%
  select(-new_names_variable)
库(TIBLE)
图书馆(tidyr)
新冠病毒数据%
mutate(location=case_当(is.na(new_names_variable)~location,TRUE~ new_names_variable))%>%
选择(-new_names_variable)
在这里,我明确指出,coid\u data新名称\u tbl将由变量位置连接。 这应该能奏效