我有一个关于将 ifelse 函数用于多个数据集的问题。
我的数据集 1“虚拟”由具有 NA 的虚拟变量组成,例如:
Date C1 C2 C3
01.2002 1 1 0
02.2002 0 NA 0
03.2002 1 NA 1
...
数据集 2“收益”包括公司的利润:
Date C1 C2 C3
01.2002 0.24 0.05 -0.01
02.2002 0.1 -0.02 0.04
03.2002 0.05 0.03 -0.02
...
我想使用 ifelse 创建一个新的数据框,我将在其中看到只有那些虚拟值为 1 的公司的利润。
例如:
Date C1 C2 C3
01.2002 0.24 0.05 NA
02.2002 NA NA NA
03.2002 0.05 NA -0.02
我的第一个想法是:
Companies1<-apply(dummy[-1,-1], 2, FUN=function(x){ifelse(x==1,returns,NA)})
但在这种情况下,代码当然是错误的。我不知道如何应用数据框返回。
如果两个表具有相同的维度并且第一列中的数据(您的日期)完全相同,那么任务是为
NA第一个表中的那些单元格分配一个值,其中第二个表中的值是相等0(顺便说一句,使用逻辑值FALSE/TRUE,缩写F/T,而不是零/一)或不存在(特殊含义NA)更合乎逻辑:解释。假设我们有以下数据:
哪些单元格
таблице2为零?可以这样查看:哪些丢失了?你可以看起来像这样(与
NA总是返回比较FALSE,以检查你是否需要使用该函数is.na()):两个条件一起:
如果我们现在将此表达式替换为 中的索引
таблице1,那么我们可以立即将值分配给必要的元素(那些在表达式中таблица2 == 0 | is.na(таблица2)具有值的元素TRUE):结果:
由reprex 包(v0.3.0)于 2021 年 2 月 9 日创建