我想在我的数据框中创建一个新列,如果下面的任何条件成立,则其值为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条记录,我不想单独编写这些记录。