对动态列数执行相同的计算,每个列都使用R中的新变量

时间:2015-10-28 15:37:30

标签: r

我想执行一个基本上检查多个日期值的计算,看起来如下所示,其中如果列的标题值为" 12/30/13"是> = Date1和< Date2然后该值将是1,或者如果为false,则为0.我希望这可以循环通过12/30/13之后或之后的许多列。

Date1      Date2      12/30/13      01/06/14      01/13/14
12/10/13   01/10/14   1             0             0
12/31/13   01/12/14   0             1             0
01/06/14   02/10/14   0             1             1

我是R(今天)的新手,非常感谢一些帮助。这可能在R?想法?

11/6更新,代码适用于1列,但是当我运行下面的代码时,它运行"没有错误,但没有"#34;工作" (即将更改应用于列,就像我在仅1列上运行时一样)。想法?

for (i in names(my_column_names) {
  sd[[i]] <- ifelse(is.na(sd$Field1), 0,
  ifelse(is.na(sd$Field2)
  & as.Date(sd$Field1, format = "%Y-%m-%d") < as.Date(sd[[i]], format = "%Y-%m-%d"),1,
  ifelse(as.Date(sd$Field1, format = "%Y-%m-%d") < as.Date(sd[[i]], format = "%Y-%m-%d")
  & as.Date(sd$Field2, format = "%Y-%m-%d") > as.Date(sd[[i]], format = "%Y-%m-%d"),1,0)))
}

1 个答案:

答案 0 :(得分:0)

我最终创建了2个变量来捕获我正在寻找的列号:

# Get colunm numbers
cs <- which(colnames(sd) == "2013-12-30")
ce <- ncol(sd)

然后将for循环的开头改为:

for (i in cs:ce) {

它有效!谢谢大家!