如何仅检查列名称满足条件的数据框中的列?

时间:2016-04-05 14:22:21

标签: r dataframe

我想在我的数据框中创建一个新列,如果下面的任何条件成立,则其值为1,如果没有,则为0。我怎样才能以更有效的方式做到这一点?有没有办法使用substr检查是否有任何以" Q8"开头的列?值是否大于0?我正在使用ifelse,因为我需要它进行矢量化(它通过5000行,这是调查参与者)。

my.function <- function(my.data){
ifelse((my.data$Q8R1 > 0) |
       (my.data$Q8R2 > 0) |
       (my.data$Q8R3 > 0) |
       (my.data$Q8R4 > 0) |
       (my.data$Q8R5 > 0) |
       (my.data$Q8R6 > 0) |
       (my.data$Q8R7 > 0) |
       (my.data$Q8R8 > 0) |
       (my.data$Q8R9 > 0) |
       (my.data$Q8R10 > 0) |
       (my.data$Q8R11 > 0) |
       (my.data$Q8R12 > 0) |
       (my.data$Q8R13 > 0)
     , 1, 0)
}

my.data$new.variable <- my.function(my.data)

有些问题有超过50条记录,我不想单独编写这些记录。

0 个答案:

没有答案