从r

时间:2018-12-27 06:33:07

标签: r subset data-extraction frequency-analysis

我有一个很大的数据集,需要从中生成特定的图表。这是我的分析设备生成的大量数据中的一个。我目前正在编写一个能够自动分析这些数据集的函数,为此,我可以使用数据集中名为“标签”的列。

当我使用table()函数时,我得到“标签”列的内容和出现的频率:

> table(datafile$Label)

 Blank     C1     C2    C3a    C3b    C3c     C4     DI     E1     E2     E3   High    Low Medium    Mid 
    11      9      9      9      9      9      9      3      9      9      9      3      3      3     13 
     P    pH3    pH5    pH7    pH9   test   Test 
     9      5      5      5      5      2      1 

我想做的是创建一个向量,我也称其为“标签”,它只包含出现频率为5或更高的标签。

然后,我正在考虑使用for循环,其长度为“ Labels”的长度为1,并使用规则datafile$Labels == Labels[n](其中n = 1:length(Labels))对数据表进行子集化,以为每个感兴趣的标签创建图表反过来。

是否有一个特定的函数将从可以设置条件的列中提取元素,这些元素会出现五次或更多次?因此,从我的示例中,我的新“标签”向量将如下所示:

> Labels

[1]    "Blank" "C1" "C2" "C3a" "C3b" "C3c" "C4" "E1" "E2" "E3" "P" "pH3" "pH5" "pH7" "pH9"

所有建议将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

我们可以使用逻辑条件将table子集化,并获得names

tbl <- table(dataFile$Label)
names(tbl)[tbl > 5]