我已读取矩阵形式的 csv 文件(有 m 行和 n 列)。我想通过以口头形式进行过滤来过滤矩阵:
选择 x 列中的所有值,其中该行中另一列的值等于“blabla”。
这就像数据库中的选择语句,我说我对需要满足这些约束的矩阵的子集感兴趣。
我怎样才能在r中做到这一点?我将数据作为数据框,可以通过标题访问它。data["column_values" = "15"]
不给我返回名为 column_values 的列仅具有值 15 的行。
Thanks
您说过您只想要列 x 值,其中 column_values 为 15,对吧?
subset(dat, column_values==15, select=x)
我认为这可能作为一个数据框出现,因此您可能需要 unlist() 它,甚至可能“解构”它。
> dat
Subject Product
1 1 ProdA
2 1 ProdB
3 1 ProdC
4 2 ProdB
5 2 ProdC
6 2 ProdD
7 3 ProdA
8 3 ProdB
> subset(dat, Subject==2, Product)
Product
4 ProdB
5 ProdC
6 ProdD
> unlist( subset(dat, Subject==2, Product) )
Product1 Product2 Product3
ProdB ProdC ProdD
Levels: ProdA ProdB ProdC ProdD
> as.character( unlist( subset(dat, Subject==2, Product) ) )
[1] "ProdB" "ProdC" "ProdD"
如果您想要所有列,您可以删除第三个参数( select= 参数):
subset(dat, Subject==2 )
Subject Product
4 2 ProdB
5 2 ProdC
6 2 ProdD
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)