根据其他分类值添加一列因子

时间:2018-02-28 22:44:19

标签: r loops

我有一个庞大的数据集,我想根据另一个因素为每个值添加一个因子。目前,我的数据如下所示:

     Type      Value
 1   Wild      68.51
 2   Wild      91.94
 3   Captive   72.58
 4   Hybrid    85.38

但我想补充另一系列因素 - {澳大利亚,哥斯达黎加,巴西} - 这是基于动物是野生动物,俘虏动物还是杂交动物。然后数据框应如下所示:

     Type      Value    Status
 1   Wild      68.51    Costa Rica
 2   Wild      91.94    Costa Rica
 3   Captive   72.58    Australia
 4   Hybrid    85.38    Brazil 

2 个答案:

答案 0 :(得分:1)

使用dplyr::case_when

这样的事情
library(dplyr);
df %>%
    mutate(Status = case_when(
        Type == "Wild" ~ "Costa Rica",
        Type == "Captive" ~ "Australia",
        Type == "Hybrid" ~ "Brazil"));
#     Type Value     Status
#1    Wild 68.51 Costa Rica
#2    Wild 91.94 Costa Rica
#3 Captive 72.58  Australia
#4  Hybrid 85.38     Brazil

样本数据

df <- read.table(text =
    "Type      Value
    1   Wild      68.51
    2   Wild      91.94
    3   Captive   72.58
    4   Hybrid    85.38", header = T)

答案 1 :(得分:0)

IllegalStateException选项是将命名向量创建为键/值对,并使用它来匹配列&#39;输入&#39;

base R