在R

时间:2017-06-23 10:43:00

标签: r

我有问题。我有一个像这样结构的数据框

 X  a   b   c   d  
 g 0.2 0.4 0.6 0.2  
 h 0.3 0.8  0  0.4 

我想创建一个新矩阵,包含我的数据库的所有行以及值大于0.5的列,如下所示

 X   b   c 
 g   /  0.6
 h  0.8  /

1 个答案:

答案 0 :(得分:1)

我们创建一个逻辑矩阵(df1[-1] > 0.5),获取colSums,检查它是否大于0,根据逻辑vector

对数据集进行子集化
df2 <- df1[c(TRUE, colSums(df1[-1] > 0.5)>0)]

并将值&lt; = 0.5分配给NA

df2[-1][df2[-1] <= 0.5] <- NA