R:dplyr。变异对值为0的行中的列进行计数的列
给定以下R:dplyr。变异对值为0的行中的列进行计数的列,r,dplyr,R,Dplyr,给定以下data.frame,A: V1 V2 V3 V4 V5 V6 1 0.0000000 0.000000 0.0000000 0.1816416 0.0000000 0.1796779 2 0.1889351 0.000000 0.0000000 0.0000000 0.0000000 0.0000000 3 0.0000000 0.000000 0.1539683 0.0000000 0.000000
data.frame
,A
:
V1 V2 V3 V4 V5 V6
1 0.0000000 0.000000 0.0000000 0.1816416 0.0000000 0.1796779
2 0.1889351 0.000000 0.0000000 0.0000000 0.0000000 0.0000000
3 0.0000000 0.000000 0.1539683 0.0000000 0.0000000 0.1983812
4 0.0000000 0.155489 0.1869410 0.0000000 0.0000000 0.0000000
5 0.0000000 0.000000 0.0000000 0.0000000 0.1739382 0.0000000
如何创建一个新列来计算行中非零值项的数量?期望输出:
V1 V2 V3 V4 V5 V6 full_tally
1 0.0000000 0.000000 0.0000000 0.1816416 0.0000000 0.1796779 2
2 0.1889351 0.000000 0.0000000 0.0000000 0.0000000 0.0000000 1
3 0.0000000 0.000000 0.1539683 0.0000000 0.0000000 0.1983812 2
4 0.0000000 0.155489 0.1869410 0.0000000 0.0000000 0.0000000 2
5 0.0000000 0.000000 0.0000000 0.0000000 0.1739382 0.0000000 1
创建玩具的代码data.frame
:
set.seed(1)
a = runif(n=30, min=0, max=0.2)
a[a<0.15] = 0
A = as.data.frame(matrix(a,
nrow=5,
ncol=6,
byrow = TRUE))
但它只查看每行的第一列值。不是一个
dplyr
解决方案,但效果很好
A$full_tally <- rowSums(A != 0)
A
# V1 V2 V3 V4 V5 V6 full_tally
# 1 0.0000000 0.000000 0.0000000 0.1816416 0.0000000 0.1796779 2
# 2 0.1889351 0.000000 0.0000000 0.0000000 0.0000000 0.0000000 1
# 3 0.0000000 0.000000 0.1539683 0.0000000 0.0000000 0.1983812 2
# 4 0.0000000 0.155489 0.1869410 0.0000000 0.0000000 0.0000000 2
# 5 0.0000000 0.000000 0.0000000 0.0000000 0.1739382 0.0000000 1
A$full_理货这与dplyr非常相似-
A$full_tally <- rowSums(A != 0)
A
# V1 V2 V3 V4 V5 V6 full_tally
# 1 0.0000000 0.000000 0.0000000 0.1816416 0.0000000 0.1796779 2
# 2 0.1889351 0.000000 0.0000000 0.0000000 0.0000000 0.0000000 1
# 3 0.0000000 0.000000 0.1539683 0.0000000 0.0000000 0.1983812 2
# 4 0.0000000 0.155489 0.1869410 0.0000000 0.0000000 0.0000000 2
# 5 0.0000000 0.000000 0.0000000 0.0000000 0.1739382 0.0000000 1