2012-12-28 42 views
0

我希望有人能帮助我,或者至少给我一个好的建议。 我有一个大型数据框来存储科学论文(按作者/年/期刊分类)。大多数的科学论文给了我更多的记录,所以我试图写一个函数(直到现在没有成功),它返回一个唯一的值(名为n),标识记录所属的纸张。如何根据条件给变量赋值

+3

Stefano,欢迎来到SO。请为我们提供一个可重复的示例,并尝试解释(并显示)您期望输出的样子。你也应该告诉我们你到目前为止所尝试过的。有一堆非常好的例子,说明如何在这里做到这一点:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

回答

1

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

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

返回发布的一个独特的MD5字符串。 digest不具备矢量功能,即您必须使用sapply或类似的函数来计算数据帧的每一行的ID。

+0

或者不太强大,只是'将作者/日期/日志粘贴到一起以获得ID字符串。 –

+1

你也可以使用'interaction'为列组合创建一个唯一的id:'with(d,as.numeric(interaction(Author,Year,Journal,drop = TRUE)))' –

+0

大家好。我尝试了Matthew提出的解决方案,效果非常好!我认为我的例子已经足够清晰了,但下次我会提供所有必要的细节。我很欣赏所有提示! – stefano