【问题标题】:how do I generate an ordered list of vectors in R?如何在 R 中生成向量的有序列表?
【发布时间】:2013-12-03 20:02:04
【问题描述】:

在我的数据中,我有一个虚构词列表以及 30 个人对它们的评分,范围为 1-5。

我已将单词评分的平均值分配给各个向量,如下所示

dox.mean = c(mean(doxrating))
noi.mean = c(mean(noirating)) 
wostaro.mean = c(mean(wostaro$rating))

现在我想用 R 生成一个降序的向量列表。

当我尝试时

sort(dox.mean, noi.mean, wostaro.mean),

它返回错误信息:

Error in sort(dox.mean, noi.mean, daishu.mean) : 'decreasing' must be a length-1 logical vector

您是否打算设置“部分”?

当我使用 order(dox.mean, noi.mean, wostaro.mean) 时,它只会返回:[1] 1

如何生成此列表?我有点新手,所以简单的术语会有所帮助!

【问题讨论】:

  • 你能提供一个doxrating,noirating等的样本吗?

标签: r sorting vector ranking


【解决方案1】:

R 中的排序函数处理向量。

例如,x <- c(1,2,3,4), sort(x)sort(c(1,2,3,4)) 生成相同的正确结果。但是要对data.frame 进行排序,您必须多走一步:

  1. 假设您的数据框有一个名称 mydata:为您希望对数据框进行排序的列获取一个向量;在你的情况下,它可以是这样的:

    sort_dox <- sort(mydata$dox.mean), sort_noi <- sort(mydata$noi.mean), sort_wos <- sort(mydata$wostaro.mean)
    
  2. 使用子集获取排序结果:

    mydata[c(sort_dox, sort_noi, sort_wos)]
    
  3. 您可以添加TF来选择降序或升序排序方式。

【讨论】:

  • 我没有看到问题中提到data.frame 形式的数据,并且标题表明他们想要一个有序列表。此外,您在第 2 部分中的子集可能不适用于真实数据
  • 无论数据是data.frame还是matrix,我们仍然可以使用子集的方式。你提醒我,我忘记了子集中的逗号。应该是:mydata[,c(sort_dox, sort_noi, sort_wos)] 谢谢
猜你喜欢
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
  • 2021-10-11
  • 2017-10-17
  • 2011-02-07
相关资源
最近更新 更多