繁体   English   中英

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

[英]Removing rows from R data frame using the for loop with 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为奇数的行?

你可以使用@Aleh answer,即使你想将它与for 循环if 循环一起使用

试试这个它会有所帮助:

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

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

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

  }

}

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

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

这是一个 dplyr 解决方案:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM