我有以下 df 其中 df <- data.frame(V1=c(0,0,1),V2=c(0,0,2),V3=c(-2,0,2))
如果我做filter(df,rowSums!=0)我得到以下错误: filter_impl(.data, quo) 中的错误:评估错误:比较 (6) 仅适用于原子和列表类型。
有谁知道这是为什么?谢谢你的帮助
PS:普通的 rowSums(df)!=0工作得很好,给了我预期的逻辑
解决问题的一种更tidyverse
风格的方法是使您的数据整洁,即只有一个数据值。
my_mat <- matrix(sample(c(1, 0), replace=T, 60), nrow=30) %>% as.data.frame
group_by
my_mat %>%
mutate(row = row_number()) %>%
gather(col, val, -row) %>%
group_by(row) %>%
filter(sum(val) == 0)
这种整洁的方法并不总是像基本 R 一样快,而且它并不总是适用于所有数据类型。
好,我知道了。过滤器(df,rowSums(df)!=0)
不是最困难的...谢谢。