Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个这样的数据集:
1 2 3 4 5 1 1 0 0 0 0 2 1 0 0 2 0 3 0 0 0 1 5 4 2 0 0 0 0
我想对具有多个非零列的行进行子集化(表示第 2,3 行)
我知道它必须类似于dataset[... dataset ...]但我没有找到如何在不使用 for 循环的情况下访问行
你只需要rowSums真的。假设您的数据集称为“mydf”,请尝试:
rowSums
> mydf[rowSums(mydf != 0) > 1, ] X1 X2 X3 X4 X5 2 1 0 0 2 0 3 0 0 0 1 5
在这里,rowSums(mydf != 0)将返回每行中有多少个值大于零的向量。然后,添加我们的条件> 1将创建一个逻辑向量,可用于对我们想要的行进行子集化。
rowSums(mydf != 0)
> 1