从 data.frame 分配唯一变量
Assigning unique variable from a data.frame
这是一个与类似的问题,但我的输出结果不同。
取数据:
example <- data.frame(var1 = c(2,3,3,2,4,5),
var2 = c(2,3,5,4,2,5),
var3 = c(3,3,4,3,4,5))
现在我想创建 example$Identity
,它为每个唯一的 var1 值
从 1:x 中获取一个值
我用过
example$Identity <- apply(example[,1], 2, function(x)(unique(x)))
但是我不熟悉正确的格式function()
example$Identity
的输出应该是1,2,2,1,3,4
这个:
example$Identity <- as.numeric(as.factor(example$var1))
会给你想要的结果:
> example$Identity
[1] 1 2 2 1 3 4
通过将 as.factor
包裹在 as.numeric
中,它开始使用 1
等计算因子水平。
或者您可以使用 match
example$Identity <- with(example, match(var1, unique(var1)))
如果值按向量排序,也可以使用findInterval
findInterval(example$var1, unique(example$var1))
#[1] 1 2 2 1 3 4
这是一个与
取数据:
example <- data.frame(var1 = c(2,3,3,2,4,5),
var2 = c(2,3,5,4,2,5),
var3 = c(3,3,4,3,4,5))
现在我想创建 example$Identity
,它为每个唯一的 var1 值
我用过
example$Identity <- apply(example[,1], 2, function(x)(unique(x)))
但是我不熟悉正确的格式function()
example$Identity
的输出应该是1,2,2,1,3,4
这个:
example$Identity <- as.numeric(as.factor(example$var1))
会给你想要的结果:
> example$Identity
[1] 1 2 2 1 3 4
通过将 as.factor
包裹在 as.numeric
中,它开始使用 1
等计算因子水平。
或者您可以使用 match
example$Identity <- with(example, match(var1, unique(var1)))
如果值按向量排序,也可以使用findInterval
findInterval(example$var1, unique(example$var1))
#[1] 1 2 2 1 3 4