我有个数据:
Alix Blim Jux Gyno
0.105 0.234 0.67 0.89
0.01 0.542 0.11 0.65
0.003 0.002 0.6 0.67
0.009 0.123 0.09 0.01我想从上面的数据中提取值大于0.6的所有列,如下所示:
Jux Gyno
0.67 0.89
0.11 0.65
0.6 0.67
0.09 0.01以下是我的代码不起作用:
out <- vector()
for(i in colnames(df){
if(df[i] > 0.6){
T <- df[,i]
}
out <- cbind.data.frame(out,T)
}我犯了一个错误,比如:
Error in data.frame(Check.names= F...). Argument imply differing number of rows.....发布于 2019-03-20 14:40:57
我们可以使用colSums来使用基R对列进行子集
df[colSums(df > 0.6) > 0]
# Jux Gyno
#1 0.67 0.89
#2 0.11 0.65
#3 0.60 0.67
#4 0.09 0.01或者用dplyr,select_if
library(dplyr)
df %>% select_if(~any(. > 0.6))https://stackoverflow.com/questions/55263403
复制相似问题