【发布时间】:2014-02-01 00:14:47
【问题描述】:
我有一个数据集,我正在尝试使用与特定子集关联的随机值创建一个新变量。
例如,给定数据框:
data(iris)
iris=iris
我想要另一个变量,它将iris$Species 的每个值与一个随机数(0 到 1 之间)相关联。这可以通过创建数据框以迂回的方式完成:
df=data.frame(unique(iris$Species),runif(length(unique(iris$Species))))
并将其与原始数据框合并:
iris=merge(iris,df,by.x="Species",by.y="unique.iris.Species.")
这完成了我想要的,但它并不优雅。此外,如果我想在不同的变量上多次复制这个过程,这个过程会很麻烦。我希望的是一些快速的索引方法,希望看起来像:
iris$Species.unif=runif(length(unique(iris$Species)))[iris$Species]
鉴于 R 中的索引通常非常灵活,我希望有一些我不知道的方法。
提前谢谢你。
【问题讨论】: