【问题标题】:Create a list using dummy variables in R在 R 中使用虚拟变量创建一个列表
【发布时间】:2013-03-09 21:19:06
【问题描述】:

我有三个表示数据来源的虚拟变量

                DS1    DS2    DS3
       Pers1     1      0      0
       Pers2     0      1      0
       Pers3     0      1      1

我想拥有

                Source
         Pers1   "DS1"
         Pers2   "DS2"
         Pers3   "DS2"|"DS3"

任何帮助将不胜感激

【问题讨论】:

    标签: arrays r list


    【解决方案1】:

    我会这样做:

    df = data.frame(DS1 = c(1,0,0), 
                    DS2 = c(0,1,1), 
                    DS3 = c(0,0,1))
    df$source = apply(df == 1, 1, function(x) paste(names(df)[x], collapse = "|"))
    > df
      DS1 DS2 DS3  source
    1   1   0   0     DS1
    2   0   1   0     DS2
    3   0   1   1 DS2|DS3
    

    apply 循环遍历 df == 1 data.frame 的行,paste 创建一个字符串。

    【讨论】:

    • 像魅力一样工作!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2013-09-23
    • 2015-10-22
    • 2015-08-11
    • 2023-01-16
    相关资源
    最近更新 更多