我有一个庞大的数据集,我想根据另一个因素为每个值添加一个因子。目前,我的数据如下所示:
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
使用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)
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