我想选择total[,3] >=0.7
和total[,4] <= 0.3
的行数。
total
是一个数据框,total[,i]
表示i
列。
我写了以下查询:
nrow(total[,3]>=0.7 & total[,4]<=0.3)
但是这给了我
我哪里错了?
答案 0 :(得分:3)
使用dplyr
包:
filter(total, total[,3] >= 0.7 & total[,4] <= 0.3) %>% summarise( count = n() )
或更明确/可翻译的版本:
total %>% filter(col3_name >= 0.7 & col4_name <= 0.3) %>% summarise( count = n() )
访问:http://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html了解详情。
total
内条件的行, filter()
数据框已过滤,结果由n()
函数汇总,该函数返回观察次数(在这种情况下是行)。
注意:将第3/4列的名称替换为col3_name和col4_name。
dplyr
旨在成为一种操作表格数据的快捷方式。
答案 1 :(得分:2)
或更常见的
sum(total[,3]>=0.7 & total[,4]<=0.3)
当您将TRUE / FALSE值视为数值时,TRUE的计算结果为1,FALSE的计算结果为0。
虽然从技术上讲,所写的方法对NA值是稳健的。如果您想使用sum
忽略NA值,则可以执行
sum(total[,3]>=0.7 & total[,4]<=0.3, na.rm=T)
答案 2 :(得分:0)
知道了。
长度(其中(总[,3]> = 0.7&amp;总[,4] <= 0.3))