2017-11-22 1 views
0

저는 R을 처음 접했습니다. 조건문을 작성하는 방법을 알아 냈습니다. 컬럼의 값이 음수이면값이 음수 일 때 조건부 합

, 그것은 86400

어떤 생각에 의해 추가해야합니까? 같은

+0

'기본 R' – tyluRp

+3

또는'ifelse'에서 case_when' 내 대답을 참조하십시오. 다음 번에는 데이터 세트의 재현 가능한 예를 공유하십시오. 그렇지 않으면, 당신은 downvotes를받을 수 있으며 가장 중요한 사람들이 당신을 도울 수 없을 수도 있습니다. – akrun

+1

'에서'dplyr' – www

답변

0

뭔가 :

df[,'col']=df[,'col']+ifelse(df[,'col']<0,86400,0) 
1

리얼 단어 데이터 세트는 데이터 프레임이라고 가정은 다음과 같은 작동합니다. 이 열 (이 예제에서는 열 b)을 지정하고 TRUE 인 경우 값이 0보다 작은 지 평가하려면 ifelse을 사용하고, 그렇지 않으면 86400을 추가하고, 그렇지 않으면 원래 값을 반환해야합니다.

# Create an example data frame 
dt <- data.frame(a = "a", b = -3:3) 
dt 
# a b 
# 1 a -3 
# 2 a -2 
# 3 a -1 
# 4 a 0 
# 5 a 1 
# 6 a 2 
# 7 a 3 

# Add 86400 to negative value in column `b` 
dt$b <- ifelse(dt$b < 0, dt$b + 86400, dt$b) 
dt 
# a  b 
# 1 a 86397 
# 2 a 86398 
# 3 a 86399 
# 4 a  0 
# 5 a  1 
# 6 a  2 
# 7 a  3 

위 코드를 다음과 같이 작성할 수도 있습니다.

dt$b <- with(dt, ifelse(b < 0, b + 86400, b))