r - 删除零而不删除整行或列 - R
解决方案
您可以排除等于零的元素并length
逐行调整。
t(mapply(`length<-`, apply(m, 1, function(x) x[x != 0]), ncol(m)))
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 7 9 4 NA
# [2,] 3 6 NA NA NA
# [3,] 1 6 6 4 3
# [4,] 7 NA NA NA NA
# [5,] 4 3 1 8 NA
如果您的数据是数据框,
d <- as.data.frame(m)
你可以这样做:
setNames(as.data.frame(t(mapply(`length<-`, apply(d, 1, function(x) x[x != 0]), ncol(d)))),
names(d))
# V1 V2 V3 V4 V5
# 1 1 7 9 4 NA
# 2 3 6 NA NA NA
# 3 1 6 6 4 3
# 4 7 NA NA NA NA
# 5 4 3 1 8 NA
数据
m <- matrix(c(0, 0, 1, 0, 0,
1, 0, 6, 0, 4,
7, 0, 6, 0, 3,
9, 3, 4, 0, 1,
4, 6, 3, 7, 8), 5)
推荐阅读
- swift - 按下按钮时 SwiftUI 2.0 iOS 14 Core 数据删除实例
- python - 使用 scipy.integrate.dblquad 在 Python 中双重集成 x*np.log(x)
- html5-canvas - 如何用透明白色清除 HTML5 Canvas?
- xml - 使用 XSLT 从嵌套 XML 到 CSV(高级)
- python - 从 yyyy-mm-dd 到 dd:mm:yyyy 的日期格式转换
- angular - 枚举无法识别 - cypress 角度单元测试
- c++ - 在 C++ 中迭代二维向量时出现超出范围的错误
- javascript - 使用功能挂钩反应 Redux(无法访问道具上的动作创建者方法)
- c - *C* 我一直在 Leetcode 中遇到 Address Sanitizer Heap Buffer Overflow
- python - 在 urls.py(Django) 中未检测到 TodayArchiveview