在r中生成信号组合及其输出的过程方法

  • 本文关键字:输出 过程 方法 组合 信号 r
  • 更新时间 :
  • 英文 :


我一直在继续学习r来从excel过渡,我想知道解决以下问题的最佳方法是什么,或者至少我可以使用什么工具:

我有一个大的数据集(100K+行(和几列,我可以从中生成一个信号,矢量中的每个值的范围可以在0到3之间。

sig1 sig2 sig3 sig4 
1   1   1   1
1   1   1   1
1   0   1   1
1   0   1   1
0   0   1   1
0   1   2   2
0   1   2   2
0   1   1   2
0   1   1   2

我想使用四列中每个单元格的状态生成复合信号,然后看看每个复合信号告诉我时间序列中的返回情况。对于这个问题,范围只是生成组合。

因此,例如,一个复合信号将是当矢量中的所有四个单元都=0时。我可以生成一个新列,当该情况为TRUE时,该列读取TRUE,而在其他情况下为false,然后继续计算它如何影响数据帧其余部分的返回。

问题是,我想检查四列的所有组合,所以0000、0001、0002、0003等等,这是相当多的。根据我对r的了解,我只知道如何通过对每个组合使用mutate()并显式输入要检查的条件来做到这一点。我想有更好的方法可以做到这一点,但我还没有找到。

谢谢你的帮助!

我认为可以将列粘贴在一起以获得唯一的组合,然后将其转换为伪变量:

library(dplyr)
library(dummies)
# Create sample data
data <- data.frame(sig1 = c(1,1,1,1,0,0,0),
sig2 = c(1,1,0,0,0,1,1),
sig3 = c(2,2,0,1,1,2,1))
# Paste together
data <- data %>% mutate(sig_tot = paste0(sig1,sig2,sig3))
# Generate dummmies
data <- cbind(data, dummy(data$sig_tot, sep = "_"))
# Turn to logical if needed
data <- data %>% mutate_at(vars(contains("data_")), as.logical)  
data

最新更新