У меня есть следующий ДФ:условного расчета: длина определенной строки, когда ниже строка не значение NA
X7 X8 X9 X10 X11 X12 X13 X14
1 1 1 <NA> 1 1 1 1 <NA>
2 1 1 1 1 1 1 <NA> <NA>
3 1 1 1 1 1 <NA> <NA> <NA>
Редактировать: Используя это:
df <- data.frame(X7=c(1L,1L,1L),X8=c(1L,1L,1L),X9=factor(c(NA,'1','1')),X10=c(1L,1L,1L),X11=c(1L,1L,1L),X12=factor(c('1','1',NA)),X13=factor(c('1',NA,NA)),X14=factor(c(NA,NA,NA)));
Я хочу, чтобы вычислить длину строки 1
, за исключением NA, когда значения в строке 2
не являются значениями NA. И затем сделайте то же самое для строки 1
и 3
.
Таким образом, результат для строк 1-2
должен быть 5 и строки 1-3
должны быть 4.
Я понятия не имею, как идти об этом, кроме зная, как вычислить длину каждой строки:
(apply(df, MARGIN = 1, FUN = function(x) length(x[!is.na(x)])))
Любая помощь будет принята с благодарностью!
Не должен ли результат для строк 1 и 2 быть 5? – bgoldst
'' NA "' это не то же самое, что 'NA'. Ваш код создает матрицу символов, а не фрейм данных. –
@RichardScriven - это правильно. Для моего ответа я создал собственное определение 'df', которое воспроизводит вывод печати, указанный в вопросе. Вызов 'cbind()', показанный в вопросе, вероятно, является источником непоследовательности и его следует игнорировать. – bgoldst