根据R中的条件保留先前的数据帧

时间:2018-07-25 14:52:49

标签: r dataframe

因此,我试图根据另一个数据帧df2的特定条件来更新或保留数据帧df1

例如,假设df1每30秒更新一次,因此如果df1中的行数nrow(df1)!= 0,则df2 <- df1否则,请保留df2中的先前值。

注意:在第一次迭代中,可以将df2初始化为NULL数据帧。

以下是我的代码

#Initializing df2 as empty dataframe
df2 <- data.frame(weight = integer(),stringAsFactors = FALSE) 

#Condition to check if number of rows in df1 != 0
if(nrow(df1) != 0){

     df2 <- df1
     temp <- df1 #Another copy of df1
}

else{

   df2 <- temp
}

在这里,我创建了另一个名为temp的数据框来保留df1的副本,以便可以在nrow(df1) == 0时使用它。我不知道temp的用法是否正确。

1 个答案:

答案 0 :(得分:0)

此代码将创建一个名为df2的空数据框。如果为nrow(df1)>0,它将有效地将df1的内容分配给df2。如果nrow(df1)==0,则df2保持为空。

df2 <- data.frame()
if(nrow(df1)>0) df2 <- df1

我很难想象为什么这很有用。如果您可能打算通过附加df2中的内容来“增长” df1(这可能更常见),则可以执行以下操作:

df2 <- data.frame()
if(nrow(df1)>0) df2 <- rbind(df2, df1)