【问题标题】:How to count up all "TRUE" values from a column (of logical values) in a Data Frame?如何计算数据框中一列(逻辑值)中的所有“TRUE”值?
【发布时间】:2018-01-28 00:43:37
【问题描述】:

这是语言 R。逻辑值在第 5 列中。但是,它似乎并没有遍历该列的所有值。最简单的方法是什么?

count = 0

if (students[ , 5] == "TRUE") {
  count = count + 1
}

num_better_at_math = count

【问题讨论】:

  • sum(students[[5]])
  • 谢谢。另外,我假设额外的括号是一个错字?
  • 不,实际上。您可以使用 vanilla data.frame 执行students[ , 5],因为[.data.frame 具有用于单列的默认drop = TRUE 参数,但这不适用于tbl_df 等数据框变体,即“小标题”。 [[ subsetting 可以在任何地方使用,因为它们都是下面的列表。
  • 这有点混乱哈哈。什么是 tibbles,它们有何不同?
  • 它们是 tidyverse 使用的 data.frame 的调整版本。 Here's a fuller explanation.

标签: r dataframe logical-operators


【解决方案1】:
set.seed(1L)
df1 <- data.frame(a1 = sample(c(TRUE, FALSE), 5, TRUE),
                  a2 = sample(c(TRUE, FALSE), 5, TRUE),
                  a3 = sample(c(TRUE, FALSE), 5, TRUE),
                  a4 = sample(c(TRUE, FALSE), 5, TRUE),
                  a5 = sample(c(TRUE, FALSE), 5, TRUE))

colSums(df1)
# a1 a2 a3 a4 a5 
# 3  1  3  2  3

sum(df1[, 5])
# [1] 3

【讨论】:

    猜你喜欢
    • 2011-01-12
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 2019-09-27
    • 1970-01-01
    相关资源
    最近更新 更多