我有两个数据帧(ma.sig,pricebreak),如下所示:
Date A B C
01/1 1 0 1
02/1 1 0 1
Date D E G
01/1 1 0 1
02/1 0 1 0
对于初学者,我只想检索第一行中所有非零值的列索引。我尝试通过以下方法执行此操作:
sig <- which(!ma.sig[1,]==0&!pricebreak[1,]==0)
和
sig <- which(!ma.sig[1,]==0)&which(!pricebreak[1,]==0)
我希望它返回类似于:1,3(基于上面的示例数据帧)。但是,我得到了这串逻辑序列:
[1] TRUE FALSE TRUE
如何让它返回列索引?由于数据的性质,我不想使用merge来合并我的数据帧。
编辑:仅为了背景信息,上述数据帧是当值非零时打开的“信号”。我正在尝试使用sig来收集我可以用于主数据帧的索引,这样我只能在信号打开时计算和打印输出。
答案 0 :(得分:0)
@serhatCevikel已经给出了答案: 我只是想为你的方便解释一下。
ma.sig =
Date A B C
01/1 1 0 1
02/1 1 0 1
pricebrake =
Date D E G
01/1 1 0 1
02/1 0 1 0
现在按照你的方法:
sig <- which(!ma.sig[1,]==0)&which(!pricebreak[1,]==0)
print(sig)
给出: 是的,是的 现在试试:
which(sig)
它将返回TRUE值的索引:
1 2 3
如果你知道的话请告诉我。我已经在我的终端检查了两次。希望你也能得到这个。