如何在 R 中创建一行,每个行元素等于其列中的值数?
How do I create a row in R with each row element equal to the number of values in its column?
我正在考虑使用以下两个概念:
1. 绑定
2. SQL
中的 COUNT 之类的东西
假设 table X:
[A · B · C ]
[1 · 2 · 3 ]
[3 · NA · 4 ]
[6 · NA · NA]
添加新行后,我的新 table X(1) 将如下所示:
[A · B · C ]
[1 · 2 · 3 ]
[3 · NA · 4 ]
[6 · NA · NA]
[3 · 1 · 2 ]
其中[3 · 1 · 2] 表示它上面的元素个数。
您可以结合使用非 NA 值的 rbind 和 rowSums。见下文。
也供将来参考,如果您以更容易重现的格式提供数据,那将更有帮助。例如,我如何在下面或对于更复杂的数据,您可以 运行 dput(X)
和 post 返回的输出
X <- data.frame(A = c(1,3,6), B = c(2,NA,NA), C = c(3,4,NA))
rbind(X, rowSums(!is.na(X)))
#> A B C
#> 1 1 2 3
#> 2 3 NA 4
#> 3 6 NA NA
#> 4 3 2 1
由 reprex package (v0.3.0)
于 2020-03-24 创建
我正在考虑使用以下两个概念: 1. 绑定 2. SQL
中的 COUNT 之类的东西假设 table X:
[A · B · C ]
[1 · 2 · 3 ]
[3 · NA · 4 ]
[6 · NA · NA]
添加新行后,我的新 table X(1) 将如下所示:
[A · B · C ]
[1 · 2 · 3 ]
[3 · NA · 4 ]
[6 · NA · NA]
[3 · 1 · 2 ]
其中[3 · 1 · 2] 表示它上面的元素个数。
您可以结合使用非 NA 值的 rbind 和 rowSums。见下文。
也供将来参考,如果您以更容易重现的格式提供数据,那将更有帮助。例如,我如何在下面或对于更复杂的数据,您可以 运行 dput(X)
和 post 返回的输出
X <- data.frame(A = c(1,3,6), B = c(2,NA,NA), C = c(3,4,NA))
rbind(X, rowSums(!is.na(X)))
#> A B C
#> 1 1 2 3
#> 2 3 NA 4
#> 3 6 NA NA
#> 4 3 2 1
由 reprex package (v0.3.0)
于 2020-03-24 创建