R 错误:应为单个值:[范围=10]
我试图用R中的一个函数创建多个数据帧。我在这里找到了一些帮助我构建函数框架的东西,但我遇到了“错误:需要单个值:[extent=10]”问题 我有我正在过滤和分组的数据,如果我正在创建一个使用单个(x)值的数据帧,它本身就可以正常工作。当我尝试使用日期向量运行时,我得到了错误 请参阅下面的代码,希望它有意义:R 错误:应为单个值:[范围=10],r,function,dataframe,R,Function,Dataframe,我试图用R中的一个函数创建多个数据帧。我在这里找到了一些帮助我构建函数框架的东西,但我遇到了“错误:需要单个值:[extent=10]”问题 我有我正在过滤和分组的数据,如果我正在创建一个使用单个(x)值的数据帧,它本身就可以正常工作。当我尝试使用日期向量运行时,我得到了错误 请参阅下面的代码,希望它有意义: target<-#vector of dates as a character class test<-function(x) { listofevents<-
target<-#vector of dates as a character class
test<-function(x) {
listofevents<-list()
for (i in 1:length(x)){
results<-mainDF %>% filter(between(Date, x - 30, x)) %>%
group_by(Name) %>% summarise(Total_Wins = sum(TotalW),Total_Records = n())
listofevents[[i]]<-results
}
return(listofevents)
}
test(x=lubridate::mdy(target))
target如果您提供一个复制错误的target
的小样本,它会有所帮助。这似乎就是您将向量传递到left
或right
的dplyr::between
参数时得到的错误。文档中没有明确说明,但似乎表明BEVER是针对x
进行矢量化的,而不是针对left
或right
(例如,示例显示长度>1的x
,但left
和right
的单个值)。我建议只切换到过滤器(x-30),如果你使用介于之间的语法,你可以切换到data.table::between
,这样做很有效。谢谢Gregor。这非常接近。它给了我输出,但它会重复结果10次,而不是(x)中10个不同日期的结果.我还收到20条警告,上面写着"在中,如果您提供一个复制错误的target
小样本,这会有所帮助。这似乎是您将向量传递到left
或right
的dplyr::between
参数时得到的错误。文档没有明确说明,但似乎表明between是为向量化的ode>x
,但不适用于left
或right
(例如,示例显示长度>1的x
,但是left
和right
的单个值)。我建议只切换到过滤器(x-30如果您使用介于之间的语法,您可以切换到数据。table::between
这种方式工作。谢谢Gregor。这非常接近。它给了我输出,但它重复了10次结果,而不是(x)中10个不同日期的结果。我还收到20条警告,上面写着“in