[英]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.