用特定值对R中的列进行子集

用户名

给定一个大数据帧,例如df,具有500列和100行,我如何仅对超过特定阈值(例如1)的列进行子集设置?

谢谢

LyzandeR

假设您的子集列的所有值均大于1,则可以执行以下操作(实际上,您还可以根据可能具有的任何条件使用以下内容if只需更改条件):

示例数据

a <- data.frame(matrix(runif(90),ncol=3))

> a
           X1         X2         X3
1  0.33341130 0.09307143 0.51932506
2  0.78014395 0.30378432 0.67309736
3  0.19967771 0.30829771 0.60144888
4  0.77736355 0.42504910 0.23880491
5  0.60631868 0.55198423 0.29565519
6  0.24246456 0.57945721 0.17882712
7  0.10499677 0.48768998 0.54931955
8  0.92288335 0.29290491 0.72885160
9  0.85246128 0.87564673 0.60069170
10 0.39931205 0.29895856 0.83249469
11 0.33674259 0.85618041 0.62940935
12 0.27816980 0.51508938 0.76079354
13 0.19121182 0.27586235 0.21273823
14 0.66337625 0.18631150 0.67762964
15 0.00923405 0.84753915 0.08386400
16 0.33209371 0.54919903 0.49128825
17 0.97685675 0.25564765 0.56439142
18 0.26710042 0.75852884 0.88706946
19 0.32422355 0.58971620 0.84070049
20 0.73000898 0.09068726 0.92541277
21 0.80547283 0.93723241 0.31050230
22 0.28897215 0.80679092 0.06080124
23 0.32190269 0.12254342 0.42506740
24 0.52569405 0.68506407 0.68302356
25 0.31098388 0.66225007 0.08565480
26 0.67546897 0.08123716 0.58419470
27 0.29501987 0.17836528 0.79322116
28 0.20736102 0.81145297 0.44078101
29 0.75165829 0.51865202 0.36653840
30 0.63375066 0.03804626 0.69949846

解决方案

只需一个lapply就足够了。0.05在这里使用阈值,因为根据我的随机数据集更容易演示如何使用它。将其更改为您想要的数据集中的任何内容。

b <- do.call(cbind, (lapply(a, function(x) if(all(x>0.05)) return(x) )))

输出

> b
              X3
 [1,] 0.51932506
 [2,] 0.67309736
 [3,] 0.60144888
 [4,] 0.23880491
 [5,] 0.29565519
 [6,] 0.17882712
 [7,] 0.54931955
 [8,] 0.72885160
 [9,] 0.60069170
[10,] 0.83249469
[11,] 0.62940935
[12,] 0.76079354
[13,] 0.21273823
[14,] 0.67762964
[15,] 0.08386400
[16,] 0.49128825
[17,] 0.56439142
[18,] 0.88706946
[19,] 0.84070049
[20,] 0.92541277
[21,] 0.31050230
[22,] 0.06080124
[23,] 0.42506740
[24,] 0.68302356
[25,] 0.08565480
[26,] 0.58419470
[27,] 0.79322116
[28,] 0.44078101
[29,] 0.36653840
[30,] 0.69949846

此时只有第3列确认了这种情况,因此将其退回。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据R中的特定行值对列进行子集化?

如何使用R根据数据框中单个列的最小值对特定列中的行进行子集

R:通过匹配A列中的值进行子集

用值子集R中的距离矩阵

用特定值之间的子集的最大值填充列

根据特定列的值对数据帧进行子集

在 R 中使用特定值进行子集化的问题

R-基于列名(向量中)和那些列中的特定值的子集行

如何对R中相同的两列具有不同值的数据框进行子集

通过R中的列内的唯一值对数据帧进行子集

如何根据R中两列不匹配的值对数据框进行子集化?

R:计算数据子集中特定值的列中的行数

使用R ggplot中的“特定”列的几个值进行绘图

根据R中的特定列值对列块进行排序

用R中的特定列填充缺失值的缺失日期

根据r中id中的值对数据进行子集

根据行中的单个值对列进行子集化

用R中另一列中的值替换特定列中的非NA值

用 ID 子集的 R 中的 999 替换NA值

R中的子集似乎不起作用:具有要作为子集的特定值的行的值

使用多个匹配对 R 中的多个列进行子集

如何通过R中的可变列数进行子集/求和

如何根据列名的长度对R中的列进行子集设置?

如何在R的另一列中仅对具有多个不同值的行进行子集化?

(R, Data.Tables):基于具有动态分配的列名的列中的逻辑值对行进行子集

用桶对r中的值进行排名

用R中的矩阵进行插值

用值填充特定列中的空行

基于列的值对行进行子集