使用if语句的for循环从R数据框中删除行

时间:2018-02-27 11:55:39

标签: r for-loop if-statement

df <- data.frame(
 V1 = c(1,3,3,5,5,6),
 V2 = c(19,19,38,19,38,19),
 V3 = c(1,3,1,7,2,10)
)

如何使用带有if语句的for循环删除 V2 为奇数的行?

4 个答案:

答案 0 :(得分:2)

你可以使用@Aleh答案,即使你想用 for loop if loop

试试这会有所帮助:

dt = data.frame()
for(i in 1:nrow(df) ) {

  if(df$V2[i] %% 2 == 0){

   dt <-  rbind(dt , df[i,]) 

  }

}

答案 1 :(得分:2)

这是dplyr解决方案:

df_filtered <- df %>% filter(V2 %% 2 == 0)

答案 2 :(得分:1)

上面的答案很好,你可以在一行中做到这一点...... 试试这个。

df[df$V2 %% 2 == 0,]

答案 3 :(得分:0)

你实际上并不需要循环,可以这样做:

idx <- df$V2 %% 2 == 0
df[idx, ]