首页 > 解决方案 > 计算列中指定值的更好方法?

问题描述

我对 R(R 工作室用户)很陌生,但越来越热情。

我在 R (R studio) 中导入了一个 Excel 文件。没问题。具有 29 列和 14.000 行的大文件。一列仅包含两个可能的值:S 或 E。

我所做的(在尝试了很多其他编码之后)是:我从数据集中取出列:

kolom <- data1$spoedelectief
# this worked wel. Pretty long view...:
> View(kolom)
#then I wrote this. Worked good as well. 
> length(which(kolom == "S"))
[1] 1999
#and the same code counted the amount of E as well.
> length(which(kolom == "E"))
[1] 11322

我找到了一些示例,这些示例显示了如何在列/数据集中计算 NA。找到了一些其他编码,但似乎没有任何工作(或者是我......)。我的问题:所示代码有效。但我想有一种方法可以直接在我的 29 列和所有这些行的数据框中进行计数。

数据框名称为 data1。栏目:soedelectief。我可以使用什么代码直接计算该列上的 E 或 S?

标签: rcount

解决方案


我们可以sum直接使用

sum(kolom == "E", na.rm = TRUE)

或者,如果该列中只有两个唯一元素,table则在获取这两个元素的频率计数方面也应该有效

table(kolom)

要重复应用这个,可以创建一个函数

f1 <- function(vec, value){
        sum(vec == value, na.rm = TRUE)
  }
f1(kolom, "E")
f1(kolom, "S")

推荐阅读