找不到对象-正在R中写入子集函数

找不到对象-正在R中写入子集函数,r,list,function,nested-lists,R,List,Function,Nested Lists,我有以下数据集: dput(head(test1, 10)) structure(list(startdate = structure(c(1572994800, 1572994800, 1572994800, 1572994800, 1572994800, 1572994800, 1572994800, 1572994800, 1572994800, 1572994800), class = c("POSIXct", "POSIXt"), tzone = ""), id = c

我有以下数据集:

dput(head(test1, 10))

structure(list(startdate = structure(c(1572994800, 1572994800, 
1572994800, 1572994800, 1572994800, 1572994800, 1572994800, 1572994800, 
1572994800, 1572994800), class = c("POSIXct", "POSIXt"), tzone = ""), 
    id = c("POL55", "POL56", "POL57", "POL58", "POL59", "POL60", 
    "POL61", "POL62", "POL63", "POL64"), m0_9 = c(NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_), m10_19 = c(NA, NA, NA, 32, 34, NA, NA, 
    NA, NA, 55), m20_29 = c(NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_
    ), m30_39 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 32), m40_49 = c(32, 
    34, NA, NA, NA, NA, 55, 3, NA, NA), m50_59 = c(NA, NA, NA, 
    NA, NA, NA, 32, 34, NA, NA), m60_69 = c(NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_), m70 = c(NA, NA, NA, NA, NA, NA, 32, 
    34, NA, NA), f0_9 = c(32, 34, NA, NA, NA, NA, 55, 3, NA, 
    NA), f10_19 = c(NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), f20_29 = c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_), f30_39 = c(NA, NA, NA, 32, 
    34, NA, NA, NA, NA, 55), f40_49 = c(NA, NA, NA, NA, NA, 32, 
    34, NA, NA, NA), f50_59 = c(NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_), f60_69 = c(NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_
    ), f70 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 32)), row.names = c(NA, 
-10L), class = c("tbl_df", "tbl", "data.frame"))
我正在编写一个小函数(它将是更大函数的一部分)。然而,我似乎有点不对劲,就像

test1$startdate <- as.POSIXct(test1$startdate, origin="1970-01-01")  

createLists("POL55", as.POSIXct(2019-11-27, origin="1970-01-01"))

createLists <- function(id, start){
  testFiltered = test1[id == id & startdate == start]

  ageGroup <- vector("list", length == nrow(testFiltered))
  names(ageGroup) <- as.character(seq_along(ageGroup))

  return(ageGroup)
}

test1$startdate这很有希望完成这项工作

createLists <- function(id, start) {
  testFiltered = test1[test1$id==id & test1$startdate == start,] # need test1$id etc.

  if(nrow(testFiltered) > 0) { # in case empty subset
     ageGroup <- vector("list", length = nrow(testFiltered))  # Only one '=' here
     names(ageGroup) <- as.character(seq_along(ageGroup))
     return(ageGroup)
  }
  else
     cat("Nothing to return\n")
}

createLists("POL55", as.POSIXct('2019-11-06', origin="1970-01-01"))
createLists 0){#如果是空子集

年龄组您是否期望
test1
是一个
数据表
?因为这看起来不像是对
数据框
进行子集的正确方法。它更像是
测试过滤的。您是否知道
2019-11-27
是一个减法序列,而不是字符串?请更正@MrFlick指出的内容,然后重试然后还有
length==nrow(etc)
。只有一个
=
,请问…什么时候可以用这种方式进行子集?df_filterd=df[x==value&y==amount]?可能会列出?…我正在处理别人的代码,不知道为什么会这样way@Danka我认为这只适用于
data.table
s。您将需要该包并专门使用这些对象。