C1 C2 C3 C4
2 3 4 5
3 3 3 3
4 5 6 6
4 4 6 3
3 3 3 3
34 4 4 45
3 3 3 3
我想选择只包含" 3值"的enitre行。 。我使用了x< - dataset(数据集,列[,C1:C4] == 3)
但它在我的整个数据集中无法正常工作。有没有比这更好的代码? 感谢
答案 0 :(得分:0)
可能有一种更优雅的方式,但这可以完成这项工作:
dataset = matrix(1:16, ncol = 4)
dataset[2,] = rep(3, 4)
dataset[apply(dataset, 1, function(row) all(row == 3)),]
答案 1 :(得分:0)
这是一种快速的单行生锈方法,但适用于多行,并且可以调整为在函数内部具有参数(或多个参数)。 这是一个例子:
A
[,1] [,2] [,3] [,4] [,5]
[1,] 3.000000 3.000000 3.000000 3.000000 3.000000
[2,] 9.471191 9.471191 9.471191 9.471191 9.471191
[3,] 3.000000 3.000000 3.000000 3.000000 3.000000
[4,] 6.469733 6.469733 6.469733 6.469733 6.469733
[5,] 8.040697 8.040697 8.040697 8.040697 8.040697
A[unique(which(A==3,arr.ind = T)[,1]),]
[,1] [,2] [,3] [,4] [,5]
[1,] 3 3 3 3 3
[2,] 3 3 3 3 3
存在一些问题,例如,您通过这样做丢失了行索引。我希望这是你正在寻找的东西。