【问题标题】:How to get the string that occures the most amount of times in a column (R)如何获取列中出现次数最多的字符串(R)
【发布时间】:2020-12-04 12:30:17
【问题描述】:

我有这个 .txt 文件,其中包含大约 206k 行,每行包含某个建筑物的测量值(编号 1-193)及其在给定日期(一年中的每一天)的用电量。我有两列存储建筑物在给定测量值上的电力使用情况(“norm_usage”和“usage”),“norm_usage”存储为字符串(高、非常高、非常低、低、中)和“使用”存储作为一个数字(193.32,323.36...)。所以我一直在尝试做的是获取上周每栋建筑的平均用电量。

现在我对“usage”列没有任何问题,因为平均值只是值的平均值,但是当涉及到“norm_usage”时,我无法获得结果中出现最多的值(因为我不能只是mean() 字符串,我决定使用测量最多的值)。

我所做的是,我设法提取了我目前正在查看的建筑物的过去几周的测量结果,我得到了这个

别管这些值基本上意味着高、低、非常高等的语言。

所以我想做的是在我的原始数据集中创建另一列来存储平均 norm_usage。

现在我知道该怎么做,但我无法在我选择的数据中提取最常见的字符串

我想要的输出是这样的:

我得到了我想要的测量选择:

print(podatki$norm_poraba[sel][sel2])
 [1] ZELOVISOKA ZELOVISOKA ZELOVISOKA VISOKA     ZELOVISOKA VISOKA     ZELOVISOKA VISOKA     ZELOVISOKA ZELOVISOKA
[11] ZELOVISOKA VISOKA     ZELOVISOKA ZELOVISOKA ZELOVISOKA VISOKA     ZELOVISOKA ZELOVISOKA ZELOVISOKA ZELOVISOKA
[21] ZELOVISOKA ZELOVISOKA ZELOVISOKA ZELOVISOKA ZELOVISOKA ZELOVISOKA ZELOVISOKA ZELOVISOKA

然后找到这些值中出现的最常见的字符串:

mostcommon <- someCode
print(mostcommon)


>ZELOVISOKA

然后将其添加到我开始使用的数据中。

【问题讨论】:

  • 欢迎来到 SO;以后请注意,此类问题纯属数据处理问题,与machine-learningartificial-intelligence(已删除标签)无关。

标签: r string


【解决方案1】:

只要您不必担心联系(根据您的问题不清楚您是否愿意),以下方法会起作用:

s = sample(LETTERS, 250, rep = TRUE)
table(s)
#> s
#>  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z 
#>  6 10  5  6  8 13 10 11 14  7 10 14 13 11  6 13 11 10  7  9 11  9  9 10 12  5
names(sort(table(s), decreasing = TRUE))[1]
#> [1] "I"

reprex package (v0.3.0) 于 2020-12-04 创建

基本上您只需要使用table 函数来获取每个字母的计数并对其进行排序。

【讨论】:

  • 正是我需要的,谢谢你好心的先生:D
【解决方案2】:

如果您不关心领带,这是使用table 的另一种方式

sort(unique(s))[which.max(table(s)]

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 2018-12-19
    • 2017-01-04
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2013-07-24
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多