gpt4 book ai didi

R 表函数 : how to coerce order of column names output of table()

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:10 26 4
gpt4 key购买 nike

我想更改 R 中表函数的列顺序输出。我只能找到有关操作 data.table 的列顺序的信息(不是我想要的)。当我使用 R(字母顺序?)时,列的顺序(“否”和"is")始终保持一致,但由于某种原因,我的一些表以不同的顺序返回("is"和“否” ”)。我需要这些是一致的(因为我正在合并一些表格)并进行排序以便"is"排在最后。我正在制作数百个具有相关统计信息的表格,并有一些定制的公式来帮助我 - 但我负担不起仔细检查每个表格的顺序 - 所以我想告诉 R 具体做什么。当我进行卡方检验时,我不想将每个表更改为 data.frame,对列重新排序,然后以某种方式变回表。表格列的顺序很重要,因为我正在组合一些表格(并且 R 错误地强制这些表格),并且还进行了比值比,所以我需要"is"始终如一地排在最后。出于好奇(不必要),有人可以向我解释为什么我的一些数据按字母顺序生成表格列,而其他数据却没有。我附上了我的数据的简化版本。

df <- data.frame(treatment = c("A","A","B","A","B","A","B","B"),
symptom = c("Yes","Yes","No","No","Yes","Yes","Yes","No"))
table(df)

由于此示例生成了我想要的表列顺序,请编写代码将列顺序从“否”、"is"更改为"is"、“否”

最佳答案

我们可以使用 factor 并指定 levels,因为 ordering 基于字母顺序,其中“N”在“Y”之前(首字母等)。这可以通过在自定义顺序中转换为具有 levelsfactor 来更改。

table(df$treatment, factor(df$symptom, levels = c("Yes", "No")))
# Yes No
# A 3 1
# B 2 2

或者使用transform然后做table

table(transform(df, symptom = factor(symptom, levels = c("Yes", "No"))))
# symptom
#treatment Yes No
# A 3 1
# B 2 2

但是,我们可以在 table 之后通过指定顺序(列索引或列名)来执行此操作,但是如果我们不知道哪些是级别,这将变得更加乏味

table(df)[, 2:1]
# symptom
#treatment Yes No
# A 3 1
# B 2 2

关于R 表函数 : how to coerce order of column names output of table(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com