2017-11-22 19 views
0

私はRを初めて使い慣れています。私は条件文を作成する方法を考え出しています。値が負の場合の条件付き合計

列の値が負の場合、それは86400です

によって任意のアイデアを追加する必要がありますか?以下のような

+0

'ベースR' – tyluRp

+3

または' ifelse'からcase_when'私の答えを参照してください。次回は、データセットの再現可能な例を共有してください。そうでなければ、あなたは下降音を受信することがあり、最も重要なことに、人々はあなたを助けることができないかもしれません。 – akrun

+1

'から 'dplyr' – www

答えて

0

何か:

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

あなたの本当のワードのデータセットは、データフレームであると仮定するとは、次のように動作します。列(この例では列b)を指定し、TRUEの場合は値が0より小さいかどうかを評価するにはifelseを使用し、それ以外の場合は元の値を戻す必要があります。

# 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))