【问题标题】:Assigning unique variable from a data.frame从 data.frame 分配唯一变量
【发布时间】:2015-07-31 03:30:32
【问题描述】:

这是与this 类似的问题,但我的输出结果不同。

获取数据:

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

【问题讨论】:

  • 您是否只需要基于var11:n 组?这对你有用吗:as.numeric(as.factor(example$var1))?
  • 是的,你在建议的答案之前回答了,你想写吗,我会选择并关闭问题
  • 我不介意将 Jaap 建议的答案标记为答案。

标签: r function functional-programming unique identity-column


【解决方案1】:

这个:

example$Identity <- as.numeric(as.factor(example$var1))

会给你想要的结果:

> example$Identity
[1] 1 2 2 1 3 4

通过将as.factor 包裹在as.numeric 中,它开始计算带有1 的因子水平,依此类推。

【讨论】:

    【解决方案2】:

    或者你可以使用match

    example$Identity <- with(example, match(var1, unique(var1)))
    

    如果按向量中的值排序,也可以使用findInterval

    findInterval(example$var1, unique(example$var1))
    #[1] 1 2 2 1 3 4
    

    【讨论】:

    • 很高兴看到 R 语言的灵活性和多样性 +1
    • @Jaap 谢谢,我的第一个选择也是factor(
    猜你喜欢
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    相关资源
    最近更新 更多