Я пытаюсь создать новый столбец со следующей логикой: для каждой строки, если имя строки является 's', новый столбец принимает значение суммы non пустые столбцы (в подмножестве), если сумма не равна нулю, и в этом случае она должна принимать значение столбца v1.R - Создать столбец из условной операции над несколькими несколькими столбцами
Пример data.frame
name year v1 COL1 COL2 COL3 COL4 COL5 COL6 COL7
1 S 1960 0.00 0.000000000 NA NA NA NA NA NA ...
2 S 1961 0.00 0.000000000 NA NA NA NA NA NA ...
3 S 1962 0.00 0.000000000 NA NA NA NA NA NA ...
4 S 1963 0.00 0.000000000 NA NA NA NA NA NA ...
5 N 1964 0.00 0.000000000 NA NA 55 NA 22 NA ...
6 S 1965 -0.13 -0.160505952 NA NA NA NA NA 45 ...
Т.Д. Пример кода, который я пытался:
df$nexcol <- 0
df$nexcol[df["name"]=="S"] <-ifelse(rowSums(!is.na(df[df["name"]=="S",5:106]))==0,
df[df["name"]=="S","V1"],rowSums(!is.na(df[df["name"]=="S",5:106])))
df$nexcol[df["name"]=="N"] <- 1
Ожидаемый результат
name year v1 COL1 COL2 COL3 COL4 COL5 COL6 COL7 ... nexcol
1 S 1960 2.00 0.000000000 NA NA NA NA NA NA ... 2.00
2 S 1961 3.00 0.000000000 NA NA NA NA NA NA ... 3.00
3 S 1962 4.00 0.000000000 52 NA NA NA 10 NA ... 2
4 S 1963 2.00 0.000000000 NA NA NA NA NA NA ... 2.00
5 N 1964 3.00 0.000000000 NA NA 55 NA 22 NA ... 1
6 S 1965 -0.13 -0.160505952 NA NA NA NA NA 45 ... 1
спасибо, что это сработало! И это заставляет меня видеть другую проблему. Столбец V1 был «фактором» в моем коде, поэтому, когда он возвращается во втором ifelse, возвращаемое значение было индексом фактора (и в конкретном случае, который я анализирую, это 1) – nanicpc