안녕하세요, 다음과 같은 데이터 프레임이 있습니다.
ColG Col2 Col3 Len Sign
G1 1 30 300 +
G2 20 80 200 +
G3 455 720 1000 -
G4 3 40 100 -
G4 2 90 130 +
그리고 여기에 각 행에 대해 Sign이 -
이면 다음을 수행하십시오.
Len-Col2 > NewCol3
Len-Col3 > NewCol2
예
1000-720=280
1000-455=545
100-40=60
100-3=97
그리고 얻다 :
ColG Col2 Col3 Len Sign NewCol2 NewCol3
G1 1 30 300 + 1 30
G2 20 80 200 + 20 80
G3 455 720 1000 - 280 545
G4 3 40 100 - 60 97
G4 2 90 130 + 2 90
도와 주셔서 감사합니다
여기서 우리는 case_when
library(dplyr)
df1 %>%
mutate(NewCol2 = case_when(Sign == '+' ~ Col2, TRUE ~ Len - Col3),
NewCol3 = case_when(Sign == '-' ~ Len - Col2, TRUE ~ Col3)
)
df1 <- structure(list(ColG = c("G1", "G2", "G3", "G4", "G4"), Col2 = c(1L,
20L, 455L, 3L, 2L), Col3 = c(30L, 80L, 720L, 40L, 90L), Len = c(300L,
200L, 1000L, 100L, 130L), Sign = c("+", "+", "-", "-", "+")),
class = "data.frame", row.names = c(NA,
-5L))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다