【问题标题】:Loop through all the variables in a file遍历文件中的所有变量
【发布时间】:2013-11-08 02:09:15
【问题描述】:

如何遍历文件中的所有变量?我在下面有一个示例代码。我的数据集被命名为 dt。

library(data.table)
dt <- data.table(df)

#Flagging each group of 1 and successive 2s uniquely
dt[,flag := 0]
dt[classobj == 1,flag := 1]
dt[,flag := cumsum(flag)]

如何使下面的代码集循环遍历所有变量?我得到了大约 500 多个变量,手动完成它太乏味了。

#Copying down the value of valtype = 1 to all other rows with the same flag
dt[,var1 := .SD[classobj  == 1, var1], by = "flag"]
dt[,var2 := .SD[classobj  == 1, var2], by = "flag"]
...
dt[,varN := .SD[classobj  == 1, varN], by = "flag"]

【问题讨论】:

  • 你也应该提供样本数据。
  • 嗨@geektrader!这是我上一篇文章的后续。在此处发布数据链接是否合法?
  • 如果是,这里是链接stackoverflow.com/questions/19752153/… ...。我尝试了您的代码,因为它更简单,但如果缺少 classobj ==1,它也会复制 classobj == 2 的值不是我想要的。

标签: r loops data.table


【解决方案1】:

按照这些思路应该可以解决问题 -

dt[
  ,
  setdiff(colnames(dt),c("flag","classobj")) := 
    .SD[
      classobj  == 1, 
      !c("flag","classobj")
      ], 
  by = "flag"
  ]

【讨论】:

  • 再次感谢@codoremifa! :-D
猜你喜欢
  • 1970-01-01
  • 2012-05-28
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 1970-01-01
  • 2018-10-18
相关资源
最近更新 更多