【问题标题】:How to assign a value to a variable according to conditions如何根据条件为变量赋值
【发布时间】:2012-12-28 17:41:13
【问题描述】:

我希望有人可以帮助我,或者至少给我一个好的建议。 我有一个大型数据框来存储科学论文(按作者/年份/期刊分类)。大多数科学论文给了我更多的记录,所以我正在尝试编写一个函数(直到现在还没有成功),它返回一个唯一值(命名为 n)来标识记录所属的论文。

【问题讨论】:

  • Stefano,欢迎来到 SO。请为我们提供一个可重现的示例,并尝试解释(并展示)您期望输出的样子。您还应该向我们展示您迄今为止所做的尝试。这里有很多很好的例子来说明如何做到这一点:stackoverflow.com/questions/5963269/…

标签: r function unique records


【解决方案1】:

要计算唯一值,您可以使用 digest 包中的 digest 函数。 例如,

library(digest)
digest(c("Granger", "1987", "Econometrica"))

为发布返回一个唯一的 MD5 字符串。 digest 不能向量化,即您必须使用 sapply 或类似方法来计算数据框每一行的 id。

【讨论】:

  • 或者,不太可靠,只是 paste 将作者/日期/期刊放在一起以获取 ID 字符串。
  • 您也可以使用interaction 为列组合创建唯一的ID:with(d, as.numeric(interaction(Author, Year, Journal, drop=TRUE)))
  • 大家好。我尝试了 Matthew 提出的解决方案,效果很好!我想我在示例中已经足够清楚了,但下次我将提供所有必要的细节。感谢所有提示!
猜你喜欢
  • 2020-02-18
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
相关资源
最近更新 更多