r - 如何在R中按条件删除一行中的单个值?
问题描述
假设我有以下矩阵:
2020-01-01 2021-01-01 2022-01-01 2022-06-06 2022-09-01 2025-01-0
[1,] -100 0 10 0 10 120
[2,] -200 0 30 20 0 130
[3,] -250 20 0 0 0 280
...
现在我想按某些条件存储行。例如,我想存储没有零的第一行和没有低于零或零的值的第二行:
c(-100,10,10,120) #Row 1
-100 10 10 120
c(30,20,130) #Row 2
30 20 130
我怎样才能做到这一点?感谢帮助!
解决方案
假设您的矩阵是:
mat = cbind(c(-100,-200,-250),c(0,0,20),
c(10,30,0),c(0,20,0),c(10,0,0),c(120,130,280))
然后你会得到一个列表:
store_vals = apply(mat,1,function(i)i[i!=0])
如果要将 row1 存储为向量,则每个元素对应于每一行:
row1 = store_vals[[1]]
row1
[1] -100 10 10 120
推荐阅读
- r - 闪亮的仪表板绘图缩放
- git - 使用 git rebase 跳过一些目录或文件
- sql - 如何在几个工作时间后计算未来的日期时间
- linux - 将文件中的行附加到另一个文件
- ios - UIViewController 自定义过渡卡在 iOS13 上
- ios - 在 CoreData 中保存然后从 managedObjectContext 访问实体偶尔会崩溃
- jenkins - 在 Jenkins 中的构建之间保持信息
- r - 无法在 mac 上安装 devtools 包
- javascript - React Native - 使用道具的传递函数, - 作为道具
- ios - 如何在从主函数返回值之前等待委托函数完成