首页 > 解决方案 > 是否有一个 R 函数,我可以在其中获取数据集中特定列中的名称

问题描述

编辑:在一位用户的帮助下,我能够使用“table(ArrestData$CHARGE)”,但是,由于有超过 2400 个条目,许多条目被省略了。我正在寻找前 5 项费用,有代码吗?此外,我正在查看一个特定的议会区(这是另一个名为“CITY_COUNCIL_DIST”的变量)。我想看看在特定的议会区域内给出的前 5 项费用是哪些。有这方面的代码吗?

谢谢您的帮助!

原帖如下


就像我如何使用“名称(MyData)”来查看我的变量的名称一样,我想知道是否可以使用代码来查看特定列的名称/响应/数据点。

换句话说,我试图在我的行中查看特定数据列的名称。我想看看累积使用了哪些名称。

在我找到这个之后,我想知道行中每个名称被使用了多少次,无论是数字还是百分比。在此之后,我想看看行中的每个名称在满足另一列/变量的数值的条件下使用了多少次。

抱歉,如果这以任何方式令人困惑。

为了更深入地了解,我正在使用我通过市长办公室网站获得的洛杉矶警察数据。从 2017 年到 2018 年,我试图查看第 5 区议会给出的费用和每项具体费用的金额。CHARGE 和 CITY_COUNCIL_DIST 是我正在研究的两个变量。

任何和所有的帮助将不胜感激。

标签: r

解决方案


要获取所有不同的变量,您可以使用该unique函数,如下所示:

> x <- c(1,1,2,3,3,4,5,5,5,6)
> unique(x)
[1] 1 2 3 4 5 6

要计算可以使用的不同值的数量table,如下所示:

> x <- c(1,1,2,3,3,4,5,5,5,6)
> table(x)
x
1 2 3 4 5 6 
2 1 2 1 3 1 

第一行为您提供不同的值,第二行为每个值提供计数。

编辑

此编辑旨在通过我之前的示例回答您的第二个问题。

为了查找变量的前五个最重复值,我们可以使用 base R。为此,我将首先从您的频率表中创建一个数据框:

df <- as.data.frame(table(x))

有了这个,现在您只需Freq按降序对列进行排序:

df[order(-df$Freq),]

但是,为了在组中查找变量重复次数最多的前五个值,我们需要超越 base R。我将使用dplyr为感兴趣的变量的每个值创建一个具有频率的增强数据框,让它成为count_variable

library(dplyr)
x_or <- x %>% 
  group_by(group_variable, count_variable) %>% 
  summarise(freq=n())

x您的原始数据框在哪里,是group_variable您的组的变量,并且count_variable是您要计算的变量。现在,您只需要以一种获得您的排序频率的方式订购count_variable对象group_variables

x_or %>% 
  arrange(group_variable, count_variable, freq)

推荐阅读