R 基于其他分类值添加一列因子
我有一个庞大的数据集,我想根据另一个因子为每个值添加一个因子。目前,我的数据如下所示:R 基于其他分类值添加一列因子,r,loops,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
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\u时,使用类似这样的方法
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
样本数据
dfAbase 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
df$Status无忧@geogeglen;您可以通过在解决方案旁边设置复选标记来结束问题。
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