【问题标题】:Creating an Indexvariable in R based on several Indexvariables基于多个索引变量在 R 中创建索引变量
【发布时间】:2015-11-17 14:16:58
【问题描述】:

我正在寻找一种在 R 中快速简便的替代方法,以从几个现有的索引变量中创建新的索引变量。例如:

var1 var2 var3 newvar
0    1    1    1
0    0    0    0
1    0    0    1
1    1    1    1
1    0    9    1
1    9    9    1
0    9    9    1

如何在 R 中创建只有一行的 newvar 列? 我在数据框中也有“未回答”的值 9。我只想计算值 1(仅此而已)。

我正在寻找 SPSS-Code 的替代方案:

COMPUTE newvar= any(1,var1,var2,var3).

【问题讨论】:

  • 你已经尝试过什么了吗?为什么那行不通? SO 不是代码编写服务。
  • dat$newvar <- apply(dat, 1, any) 可以。你想要吗?
  • 我试过这个:df
  • 或:df$newvar <- +(rowSums(df>0)>0)
  • @VolkerHolzendorf 这里没有人能读懂你的想法。将此信息添加到问题中,而不是在 cmets 中。

标签: r variables spss


【解决方案1】:

要计算每一行的值1,您可以使用:

mydf$newvar <- rowSums(mydf==1)

如果您想查看是否有任何值是 1(正如您的预期输出 newvar 所暗示的那样):

mydf$newvar <- +(rowSums(mydf==1)>0)

【讨论】:

    【解决方案2】:

    谢谢亨利克! 你说的对。在你提到的线程中得到了回答。 这里再次给出答案,因为对每个人来说没有什么是微不足道的:-)

    newvar<-as.numeric(apply(cbind(var1,var2,var3), 1, function(r) any(r == 1)))
    

    埃尔奇冯奥斯陆

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 2015-08-14
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      相关资源
      最近更新 更多