如何使用mutate和if-else语句在r中添加另一列?

如何使用mutate和if-else语句在r中添加另一列?,r,R,我有一个大的csv文件,我一直在试图编辑。我一直在尝试创建一个名为“种族”的新专栏。目前有一个名为“衍生种族”的专栏,其中包含多个种族,包括白人、黑人或非裔美国人、亚洲人、联合人等。我需要将衍生种族类别划分为白人、黑人和其他种族。我尝试使用mutate添加另一列,我使用的代码如下所示: mutate(selected_public_2018_lar,Race = if (derived_race == 'White'){ print("White") } else if (

我有一个大的csv文件,我一直在试图编辑。我一直在尝试创建一个名为“种族”的新专栏。目前有一个名为“衍生种族”的专栏,其中包含多个种族,包括白人、黑人或非裔美国人、亚洲人、联合人等。我需要将衍生种族类别划分为白人、黑人和其他种族。我尝试使用mutate添加另一列,我使用的代码如下所示:

mutate(selected_public_2018_lar,Race = if (derived_race == 'White'){
print("White")
 } else if (derived_race == 'Black or African American'){
print("Black")
}else {
print("Other")
})
我不断收到如下错误:

mutate(selected_public_2018_lar,Race = if (derived_race == 'White'){
print("White")
 } else if (derived_race == 'Black or African American'){
print("Black")
}else {
print("Other")
})
错误:
mutate()
输入
.1
有问题。 x输入
.1
无法回收到2316993大小。 ℹ 输入
.1
已被选中\u public\u 2018\u lar。 ℹ 输入
.1
的大小必须为2316993或1,而不是179666


提前感谢您的帮助

如果我们想在data.frame中创建一列,我们可以在
If/else
case\u时使用
If/else
作为
If/else
未矢量化且
打印
仅用于打印值

library(dplyr)
selected_public_2018_lar <- selected_public_2018_lar %>%
       mutate(Race = case_when(derived_race == 'Black or African American' ~ 'Black',
          derived_race == 'White' ~ White', TRUE ~ "Other"))

或使用
重新编码

selected_public_2018_lar %>%
    mutate(Race =  recode(`Black or African American` = 'Black',
                      'White' = 'White', .default = 'Other'))

如果我们想在data.frame中创建一列,我们可以使用
ifelse
case\u当
as
If/else
未矢量化时,并且
print
仅用于打印值

library(dplyr)
selected_public_2018_lar <- selected_public_2018_lar %>%
       mutate(Race = case_when(derived_race == 'Black or African American' ~ 'Black',
          derived_race == 'White' ~ White', TRUE ~ "Other"))

或使用
重新编码

selected_public_2018_lar %>%
    mutate(Race =  recode(`Black or African American` = 'Black',
                      'White' = 'White', .default = 'Other'))