r - 在 R 中对数据进行排序

标签 r dataset

我有一个数据集,需要按参与者 (RECORDING_SESSION_LABEL) 和试验编号进行排序。然而,当我使用 R 对数据进行排序时,我没有尝试过将变量按照我想要的正确数字顺序排列。参与者变量输出正常,但试验 ID 变量输出的顺序错误,不符合我的需要。

使用: fix_rep[order(as.numeric(RECORDING_SESSION_LABEL), as.numeric(Trial_number)),]

参与者 ID 如下:

118 118 118等211 211 211等306 306 306等(很好)

Trial_number 的结果为:

1 1 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 2 2 20 20 ....(这不是我想要的 - 它似乎是按词汇而不是按数字排序)

我希望每个参与者编号中的 Trial_number 的顺序如下:

1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 ....

我已经检查过这些变量不是因素,而是数字,并且也尝试过不使用“as.numeric”,但没有任何乐趣。环顾四周,我看到一些建议,sort()mixedsort() 可能可以代替“order”,但两者都会出现错误。我慢慢地为一件我认为应该很简单的事情而烦恼。任何人都可以帮助阐明如何做到这一点以获得我需要的东西吗?

最佳答案

即使您声称它不是一个因素,但它的行为确实就像是一个因素一样。测试某物是否是一个因素可能很棘手,因为因素只是一个带有级别属性和类标签的整数向量。如果它是一个因素,您的代码需要调用嵌套在 as.numeric() 中的 as.character():

fix_rep[order(as.numeric(RECORDING_SESSION_LABEL), as.numeric(as.character(Trial_number))),]

要真正确定这是否是一个因素,我推荐使用 str() 函数: str(试验编号)

关于r - 在 R 中对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11362952/

相关文章:

r - 在 R Markdown 中更改书目风格

r - ggplot2:在准时间轴上绘制时间序列和多点预测

c# - 如何在 C# 数据绑定(bind)中传递值列表作为参数

c# - 如何解决数据集错误 - 数据集不支持 'union' 或 'list' 作为 simpleType

r - 尝试将单词列表与 R 中的句子列表匹配时出现性能问题

r - 从 Rmd 文档一次执行所有 R block

dataset - 有效地连接许多 sas 数据集

c# - WPF 中自动生成的代码显示错误。 (C#、WPF、Visual Studio 社区 2013)

crystal-reports - 将列添加到 Crystal Report 的数据集 (xsd)

r - 强制执行指定的S3方法