如果焦点变量是NA,则在R中创建具有“替换”变量值的汇总变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果焦点变量是NA,则在R中创建具有“替换”变量值的汇总变量相关的知识,希望对你有一定的参考价值。

我有个问题。我的数据集中有三个“国籍”变量(作为三个单独的列):

  1. “Nationality_birth”
  2. “Nationality_now”
  3. “Ethnic_difference”(此变量有一个值,如果“Nationality_birth”和“nation_now”正在发散 - 表示某人感觉更加分离的两个国籍中的哪一个 - ,否则NA)

现在我想创建第四个变量“国籍”,它基于“国籍_差异”(焦点变量),但如果“国籍_差异”是NA,则具有“国籍”(替代变量)的值。

我尝试了以下代码:

data$Nationality <- data$Nationality_difference
data$Nationality[is.na(data$Nationality_difference)] <- data$Nationality_birth

我收到以下错误:

Error in data$Nationality[is.na(data$Nationality_difference)] <- data$Nationality_birth : 
replacement has length zero

我错过了什么?

非常感谢提前!

答案

你可以试试:

data$Nationality <- 
   ifelse(!is.na(data$Nationality_difference), 
            data$Nationality_difference, 
            data$Nationality_birth)

以上是关于如果焦点变量是NA,则在R中创建具有“替换”变量值的汇总变量的主要内容,如果未能解决你的问题,请参考以下文章

shell默认变量值

R创建两个变量的直方图

在SSIS脚本组件中创建时,变量不包含回车符

批处理将文本中的变量名替换为变量值并删除定义赋值语句

NSIS - 安装程序:将套件版本与头文件定义变量进行比较,如果错误定义变量值则更新

jQuery - 用变量值替换文本中的单词