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

问题描述 投票:-1回答:2

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

     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 
r loops
2个回答
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)

0
投票

base R选项是创建一个命名向量作为键/值对,并使用它来匹配列'Type'

df$Status <- setNames( c('Costa Rica', 'Australia', 'Brazil'), 
            c('Wild', 'Captive', 'Hybrid'))[as.character(df$Type)]
df
#      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
© www.soinside.com 2019 - 2024. All rights reserved.