![](/img/trans.png)
[英]How to subset a data frame by removing all rows from columns with a given string, and value less than X?
[英]subset all columns in a data frame less than a certain value in R
我有一個包含7個p值變量的數據框。 我無法發布它,因為它是私有數據,但它看起來像這樣:
>df
o m l c a aa ep
1.11E-09 4.43E-05 0.000001602 4.02E-88 1.10E-43 7.31E-05 0.00022168
8.57E-07 0.0005479 0.0001402 2.84E-44 4.97E-17 0.0008272 0.000443361
0.00001112 0.0005479 0.0007368 1.40E-39 3.17E-16 0.0008272 0.000665041
7.31E-05 0.0006228 0.0007368 4.59E-33 2.57E-13 0.0008272 0.000886721
8.17E-05 0.002307 0.0008453 4.58E-18 5.14E-12 0.0008336 0.001108402
每列的值都為0-1。 我想通過提取每列中小於0.009的所有值並制作一個新的數據幀來子集整個數據幀。 如果要在這種條件下提取,則列的長度將有很大不同。 例如,c的值小於0.009,而o的值為300,a的值為500,等等。
我試過了:
subset(df,c<0.009 & a<0.009 & l<0.009 & m<0.009& aa<0.009 & o<0.009)
當我這樣做時,我最終得到的偶數列非常少,這不是我想要的,我希望每列中的所有值都適合數據中的子集條件。
然后,我想通過使用諸如summary(cut())
函數之類的方法來獲取此數據框並將其歸類為p值范圍組,但是我不確定該怎么做。
因此,基本上我想擁有一個最終的數據幀,其中包含每個變量的每個p值容器中的值數量:
o# m# l# c# a# aa# ep#
0.00-0.000001 545 58 85 78 85 45 785
0.00001-000.1 54 77 57 57 74 56 58
0.001-0.002 54 7 5 5 98 7 5 865
嘗試:
sapply(df,function(x) table(cut(x[x<0.009],c(0,0.000001,0.001,0.002,Inf))) )
# o m l c a aa ep
#(0,1e-06] 2 0 0 5 5 0 0
#(1e-06,0.001] 3 4 5 0 0 5 4
#(0.001,0.002] 0 0 0 0 0 0 1
#(0.002,Inf] 0 1 0 0 0 0 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.